您好我在我的代码中使用async parallel
练习代码
var tasklist = [],tempjson={};
for(var i = 0; i < 10; i++) {
tempjson.data = 'i is' + i;
for(var j = 0; j < 20; j++){
tasklist.push(doSomething(tempjson,j));
}
}
async.parallel(taskList, function(err, data) {
console.log(data);
});
function doSomething(params,j){
params.data2 = 'j value is'+ j
return callback(null,params)
}
想做类似的事情,但我收到错误,回调未定义,有人可以帮我解决代码有什么问题
答案 0 :(得分:1)
您没有将callback
作为参数传递给函数doSomething
。
只需添加回调参数,如
function doSomething(params,j){
return function(callback){
params.data2 = 'j value is'+ j
return callback(null,params)
}
}
这将解决问题!!
答案 1 :(得分:1)
ReferenceError:未定义回调
这是因为您未将callback
传递给doSomething()
。根据{{3}},我们需要将回调传递给函数。
此外,您的代码中存在拼写错误。它是tasklist
而不是taskList
解决这个问题,
var tasklist = [], tempjson = {};
for (var i = 0; i < 10; i++) {
tempjson.data = 'i is' + i;
for (var j = 0; j < 20; j++) {
tasklist.push(function (callback) {
doSomething(tempjson, j, callback);
}); // Array of task as per docs
}
}
async.parallel(tasklist, function (err, data) {
console.log(data);
});
function doSomething(params, j, callback) { // passing callback as per docs
params.data2 = 'j value is' + j;
return callback(null, params)
}
这将记录
[{数据:&#39;我是9&#39;,数据2:&#39; j值是20&#39; },
{data:&#39;我是9&#39;,数据2:&#39; j值是20&#39; },
...... ......还有100件商品]