Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 与循环函数任务列表节点js异步_Node.js_Asynchronous - Fatal编程技术网

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兄弟需要帮助