railsのループ内にjqueryの非同期処理をメソッドチェーンで行うものを組み込んだのですが、うまくいきません。
javascript の非同期処理を順次実行していくやり方として、async awaitというのを使ってみました。
原因わかる方いらっしゃいましたら教えていただけると幸いです。
■やりたいこと
railsのfor内でjavascriptのsomethingというメソッドを読んで、メソッドチェーンの最終的なメソッド実行が終わった後に、呼び出し元に戻ってまた次のsomething()を呼び出す。
■実際に起きてしまっていること
メソッドチェーンの最終的なreturnを待たずに次の処理をしてしまっている。
■わかりやすく言うと例えば
//railsのfor文{
<script> //変数loopCntは別のところで宣言されていて、現在のループ回数を表すものとします。 //最初のsomething実行 if(loopCnt ==0){ something(); }else{ //2回目以降のsomething実行 await something(); } async function something(){ //↓次のthenの引数、responseに値を引き継ぎたいだけなのに、実際にはこれをawaitが受け取って動いているように見える return process1 .then(response =>{ }); //↓を返した結果がawaitの期待する処理のはずでは? return process3; } </script>}//railsのfor文終わり
あなたの回答
tips
プレビュー