0
ここでは、私の周りを包み込んでいるプログラムがあります。どのように結果がプッシュされるのですか?qの項目を非同期で印刷する方法
function asyncAdd(a,b,callback) {
setTimeout(function() {
return callback(a+b);
},0);
}
var q = [];
var ctr = 0;
for (var i=0; i<9; i++) {
(function(i) {
var res = asyncAdd(i, 0, printRes);
q.push(res);
})(i);
}
function done(q) {
console.log("done"+q);
}
function printRes(res) {
return res;
}
で見てください。すべての非同期操作が完了した後にのみ印刷したい場合は、実行する操作の数を把握し、完了した数を保持する必要があります。これらの数字が一致すると、すべての非同期操作が完了したことがわかります – Literphor
@Literphorプロミスの仕様には、すべての約束が終わるまで待つ素敵な 'Promise.all'もあります。 A + Promiseライブラリは相互に互換性があるので、それを使用することができます。 –