我在使用异步库时遇到问题。 我的目标是能够并行执行函数请求,为此我使用的是异步库。在我的代码中,我创建了一个函数数组,其中必须使用async.map并行调用thebn。当我想从异步任务中读取返回值时,我遇到了问题。
这里是代码段:
var pages = Math.ceil(rowCount/config.ROWS_PER_PAGE);
var func = [];
var top, left, wdith, height;
for(var i=0; i<=pages;i++) {
top = i * config.ROWS_PER_PAGE;
left = 0;
width = config.DATA_PER_ROW;
height = Math.min(config.ROWS_PER_PAGE, rowCount - i * config.ROWS_PER_PAGE);
var ff = makeCallbackFunc(top, left, width, height);
func.push(ff(function () {return true;}));
}
async.map(
func,
function(err, results){
//???? Can not read the results output here!!??
console.log('all calls called without any errors');
});
function makeCallbackFunc(top, left, width, height) {
return function (callback) {
console.log('top: ' + top + 'left: ' + left + 'width: ' + width + 'height: ' + height);
return backendApi.getData([{
qTop: top,
qLeft: left,
qWidth: width,
qHeight: height
}]);
};
}
这是使用console.log(结果);
的输出谢谢!