次のシナリオでDojo Deferredの作業を行う方法を頭に入れて問題を解決しています。基本的に私は、いくつかの項目をループして各項目を別々に処理する機能を持っています。それは完了したときにDeferredを返す別のメソッドで各アイテムの処理を行います。ループを実行して各項目を処理し、処理が完了したときに成功または失敗を返すことができるようにしたい。ここで私は、試験試料として、これまでに得たものである:Dojo遅延チェーニング
http://jsfiddle.net/Ayyoudy/mgv6Y/12/
私が間違って何をしているのですか?私は出力番号が順番になることを期待していますが、それはそうではありません。
また、アイテムの1つを処理する際にエラーがあるかどうかを検出できるようにしたい場合は、残りのアイテムを処理しないようにする必要があります。
おかげ
ありがとうございました。ログがすべての場所にあるので、結果がどのように順序付けられているか分かりません。私はクロージャー機能のあなたの考えが好きです。私は出力が言うと期待しています: 完了1、完了2、完了3、完了4、完了5、完了6、完了7、完了8、完了8、完了9、完了10、処理済みすべて – Ayyoudy
関数のvalidate()で.random()を呼び出します。 http://jsfiddle.net/granjoy/mgv6Y/17/が好きかどうかを参照してください。それが役に立つと思うなら、投票してください。 :P – Gran
ありがとう、私は答えを受け入れるだろうが、私はあなたがIDでそれを掛けているときにすべての後続の項目のためのタイムアウトを高く設定することによって注文を強制していると思う。もちろん、最初の項目は最初に解決されます:)...私は実際に意図的にそこにランダムタイムアウトの要因を持っていました。ここに私がやったことがあり、私はそれが動作すると思います:http://jsfiddle.net/Ayyoudy/mgv6Y/14/ 再び、助けを感謝します! – Ayyoudy