0
這是我試圖包裹頭部的程序,一旦所有結果都被推送,我如何正確打印q項目?如何在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規範還有一個很好的'Promise.all',它將等待所有的承諾完成。由於A + Promise Libraries相互兼容,因此可以使用。 –