如何以异步方式打印q中的项目

How to print the items in q, the async way

本文关键字:项目 式打印 异步      更新时间:2023-09-26

这是一个我正在尝试的程序,一旦推送了所有结果,我如何正确打印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;
}

请看一下我的版本

function asyncAdd(a,b,callback) {
    callback(a+b);
}
var q = [];
var ctr = 0;
var max = 9;
for (var i = 0; i < max; i++) {
    asyncAdd(i, 0, printRes);       
}

function done(q) {
    console.log("done " + q);
}
function printRes(res) {
    q.push(res);
    if (q.length === max)
        done(q);
}