Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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
Javascript async.瀑布方法中未定义回调_Javascript_Node.js_Async.js - Fatal编程技术网

Javascript async.瀑布方法中未定义回调

Javascript async.瀑布方法中未定义回调,javascript,node.js,async.js,Javascript,Node.js,Async.js,从下面的代码中,我没有得到result1数据。没有定义。有人能帮我吗 async.waterfall([ function(callback) { request({ method: 'GET', headers: { 'Content-Type': 'application/json' }, url: url }, functi

从下面的代码中,我没有得到result1数据。没有定义。有人能帮我吗

async.waterfall([
    function(callback) {
        request({
            method: 'GET',
            headers: {
                'Content-Type': 'application/json'
            },
            url: url
        }, function(error, response, body) {
            if (error) {
                callback(error);
            } else {
                var result = JSON.parse(body);
                callback(null, result); //sending to next function
            }
        });
    },
    function(result, callback) {

        async.eachSeries(result, function(item, callback) {
            request({
                method: 'GET',
                headers: {
                    'Content-Type': 'application/json'
                },
                url: url+item.id
            }, function(error, response, body) {
                if (error) {
                    callback(error);
                } else {
                    var result1 = JSON.parse(body);
                    callback(null, result1);
                }
            });
        }, function(err, result1) {
            if (!err) {
                callback(null, result1);
            } else {
                callback(err);
            }
        });
    },
    function(result1, callback) {
      console.log(result1);  // getting undefined
        request({
            method: 'GET',
            headers: {
                'Content-Type': 'application/json'
            },
            url: url
        }, function(error, response, body) {
            if (error) {
                callback(error);
            } else {
                var result2 = JSON.parse(body);
                callback(null, result2);
            }
        });
    }
], function(error, res) {
    console.log(res); // process final result
});
对于类似于此的签名-回调(err),没有第二个参数,这就是为什么
result1
undefined

若你们需要在循环完成后得到结果,你们需要使用,就像这样

async.mapSeries(result, function(item, callback) {
  request({
    method: 'GET',
    headers: {
      'Content-Type': 'application/json'
    },
    url: url + item.id
  }, function(error, response, body) {
    if (error) {
      callback(error);
    } else {
      var result1 = JSON.parse(body);
      callback(null, result1);
    }
  });
}, function(err, result1) {
  if (!err) {
    callback(null, result1);
  } else {
    callback(err);
  }
});