質問: 処理B(DWRによる非同期でサーバチェック) ※エラーがあった場合は戻り値をfalseとする。 if(result) { 処理C } ``` こんな想定です。 現状としては、非同期通信の結果を得る前に処理Cに入ってしまうため、処理順が 処理A⇒処理B ⇒処理C となってしまっています。(実際は処理Bの結果を入れる箱が未定義なのでundefinedとなっているため処理Cは実行されないのですが...) 非同期の結果を先に得てから処理Cを行うようにしたいのですが、どのようにしたらできるのでしょうか? ご教示いただける方がいましたら、お願いいたします。 以下、追加 Promiseが使えないらしくその後自分で調べたりしてあまり推奨されてないようですが DWREngine.setAsync(false)をグローバルに定義して試してみたのですがうまく行かず... このやり方の場合は、グローバルに定義する以外に何かやるべきことはあるのでしょうか? 調べたところ、グローバルに定義するのみでいけそうな感じだったのですが... http://directwebremoting.org/dwr/documentation/browser/engine/options.html このページを参考にしました。 コールバック地獄でやるしかないのですかね??
回答: 対策は大まかには3パターンに分類できると思います。 * コールバック関数で制御する * `Promise` で制御する (ES2015 / ES6) * `await` 関数で制御する (ES2017 / ES8) Re: daichaso0307 さん