Node.js 与循环函数任务列表节点js异步
您好,我在练习代码的代码中使用了Node.js 与循环函数任务列表节点js异步,node.js,asynchronous,Node.js,Asynchronous,您好,我在练习代码的代码中使用了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(
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)
}
var tasklist=[],tempjson={};
对于(变量i=0;i<10;i++){
tempjson.data='i是'+i;
对于(var j=0;j<20;j++){
push(doSomething(tempjson,j));
}
}
async.parallel(任务列表、函数(错误、数据){
控制台日志(数据);
});
功能剂量测量(参数,j){
params.data2='j值为'+j'
返回回调(null,参数)
}
想做这样的事情,但是我遇到了一个错误,回调未定义。有人能帮我一下代码有什么问题吗?您没有将
回调
作为参数传递给函数doSomething
只需添加如下回调参数
function doSomething(params,j){
return function(callback){
params.data2 = 'j value is'+ j
return callback(null,params)
}
}
这将解决问题 您没有将
回调作为参数传递给函数doSomething
只需添加如下回调参数
function doSomething(params,j){
return function(callback){
params.data2 = 'j value is'+ j
return callback(null,params)
}
}
这将解决问题
ReferenceError:未定义回调
这是因为您没有将回调传递给doSomething()
。根据,我们需要将回调传递给函数
此外,您的代码中还有一个输入错误。它是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)
}
var tasklist=[],tempjson={};
对于(变量i=0;i<10;i++){
tempjson.data='i是'+i;
对于(var j=0;j<20;j++){
tasklist.push(函数(回调){
剂量测定法(tempjson,j,回调);
});//根据文档的任务数组
}
}
async.parallel(任务列表、函数(错误、数据){
控制台日志(数据);
});
函数doSomething(params,j,callback){//根据文档传递回调
params.data2='j值为'+j;
返回回调(null,参数)
}
这将记录
[{data:'i是9',data2:'j值是20'},
{data:'i为9',data2:'j值为20'},
……100件以上]
ReferenceError:未定义回调
这是因为您没有将回调传递给doSomething()
。根据,我们需要将回调传递给函数
此外,您的代码中还有一个输入错误。它是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)
}
var tasklist=[],tempjson={};
对于(变量i=0;i<10;i++){
tempjson.data='i是'+i;
对于(var j=0;j<20;j++){
tasklist.push(函数(回调){
剂量测定法(tempjson,j,回调);
});//根据文档的任务数组
}
}
async.parallel(任务列表、函数(错误、数据){
控制台日志(数据);
});
函数doSomething(params,j,callback){//根据文档传递回调
params.data2='j值为'+j;
返回回调(null,参数)
}
这将记录
[{data:'i是9',data2:'j值是20'},
{data:'i为9',data2:'j值为20'},
……100件以上]
获取错误堆栈:“TypeError:回调不是函数\n更新了答案!!”!!,抱歉,我的badthax bro帮助获取错误堆栈:“TypeError:callback不是函数\n更新了答案!!”!!,对不起,我的badthax兄弟需要帮助