
JavaScriptでの処理の中で、クライアント側のチェック⇒DWRでサーバ側チェックを行い、どちらのチェックも問題なかった場合は後続処理を実行するようにしたいです。
例
処理A⇒処理B(DWRを使用し、非同期通信)⇒処理Bの結果で問題なければ処理Cを行うような形です。
Javascript
1function example() { 2 処理A(クライアントチェック) 3 エラーがあった場合はfalseで終了。 4 5 var result = 処理B(DWRによる非同期でサーバチェック) 6※エラーがあった場合は戻り値をfalseとする。 7 8 if(result) { 9 処理C 10 }
こんな想定です。
現状としては、非同期通信の結果を得る前に処理Cに入ってしまうため、処理順が
処理A⇒処理B
⇒処理C
となってしまっています。(実際は処理Bの結果を入れる箱が未定義なのでundefinedとなっているため処理Cは実行されないのですが…)
非同期の結果を先に得てから処理Cを行うようにしたいのですが、どのようにしたらできるのでしょうか?
ご教示いただける方がいましたら、お願いいたします。
以下、追加
Promiseが使えないらしくその後自分で調べたりしてあまり推奨されてないようですが
DWREngine.setAsync(false)をグローバルに定義して試してみたのですがうまく行かず…
このやり方の場合は、グローバルに定義する以外に何かやるべきことはあるのでしょうか?
調べたところ、グローバルに定義するのみでいけそうな感じだったのですが…
http://directwebremoting.org/dwr/documentation/browser/engine/options.html
このページを参考にしました。
コールバック地獄でやるしかないのですかね??








回答3件
あなたの回答
tips
プレビュー