获得成功回复async.js瀑布方法的响应

时间:2016-04-17 18:47:15

标签: javascript node.js asynchronous async.js

我使用async.js waterfall方法有以下功能:

async.waterfall([
  funcOne,
  funcTwo,
  function upload(items, next) {
    async.each(items,
        function(item, callback) {
            s3.putObject({
                Bucket: srcBucket,
                Key: item.key,
                Body: item.data,
                ContentType: item.contentType,
                Metadata: {
                  type: 'thumbnail'
                }
            }, function(err,data){
              callback(err,data);
            });
        },
        function(err,response) {
          next(err,response);
        });
  }],
  function(err,response) {
    if (err) {
        console.error(err);
    }
    else {
      console.log('------ SUCCESS',response);
    }
  }
);

我想访问async.each的{​​{1}}回调中的success回复。

我尝试了几种不同的做法waterfallcallback(err,data) => next(err,response)总是未定义

我错过了什么?

1 个答案:

答案 0 :(得分:1)

显然我缺少的是使用async.map()代替async.each()。正如人们所料,async.each()不会返回值。使用async.map()将为您提供返回响应,以便您可以向下传递值。