ループ内で非同期関数を呼び出す関数を記述しようとしています。結果。ループ内で非同期関数を使用し、ループが終了した後でコールバックを呼び出す
このような何か:
function foo(cb){
var result;
for(var i=0; i < 999; i++){
asyncFunction(i, function(val){
do something with result
});
}
cb(result);
}
しかし、私はそれが実際にすべてのasyncFunction
の呼び出しから戻る終わる前に、それはcb(result);
になっていることがわかります。
cb
を呼び出す前に、ループの終了を待つために何ができるのですか?約束は助けになるのだろうか?
はい。約束は正しい方法です – Rajesh
しかし、私は同じ問題に遭遇しませんか?約束が成就したことを伝えるものは何ですか? @Rajesh – shinzou
以下は、コールバックを使用したサンプル[JSFiddle](https://jsfiddle.net/RajeshDixit/o5vc1t72/)です。約束を使って似たようなことをする必要があります – Rajesh