私は次のことにこだわっています:
スクリプトは、次のように任意の数値n
または配列を返します。
[["a"], ["b"], ["c"], ["d"]]
promise を使用して配列をループする必要がありますthen()
が、要素の数がわからないため、これを行うことになりました。
var bundle_list = [["a"], ["b"], ["c"], ["d"]];
var x = bundle_list.reduce(function(current, next) {
console.log(current);
// requestBundle will also return a promise
return requestBundle(current)
.then(function(bundle_response) {
// do foo
console.log("CALLING NEXT")
console.log(next);
return RSVP.resolve(next);
});
})
x.then(function(last_response) {
return console.log("DONE")
});
私の問題はreduce/map
、非同期コードが実行される前に両方がすべての反復をトリガーすることです。そのため、コンソールが 3 倍になり、その後にcurrent
コンソールが続きdone
ます。したがって、すべてのマップの「ループ」は即座に実行され、結果は少し (あまりにも) 遅れて記録されます...
私はこのRSVP実装を使用していますが、これは A+ なので問題にはなりません。ここで提供されている回答に沿って作業しようとしていますが、適切に機能させることができません。
質問:任意の数のステートメント
で「then-chain」を作成することは可能ですか? then
もしそうなら、いくつかの指針をいただければ幸いです!
ありがとう!