javascript - 在 async.js waterfall 方法的成功回调中获取响应

标签 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);
    }
  }
);

我想访问 waterfallsuccess 回调中的 async.each 响应。

我尝试了几种不同的方式来执行 callback(err,data) => next(err,response)------ SUCCESS 是始终未定义

我错过了什么?

最佳答案

显然我缺少的是使用async.map()而不是async.each()。正如人们所期望的那样,async.each() 并不返回值。使用async.map()会给你一个返回响应,这样你就可以在链上传递值。

关于javascript - 在 async.js waterfall 方法的成功回调中获取响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36680716/

相关文章:

javascript - 在 React Native 中通过 fetch 设置状态

javascript - 创建一个简单的 JQuery 工具提示?

javascript - 如何使用 expressjs 和 mongodb 使用 promise /回调?

javascript - 包装 javascript fetch 以添加自定义功能

javascript - 当固定到相机时更改 Phaser.Text 的位置

javascript - 无效格式 pki.privateKeyFrom... PKCS#8 与 node-forge javascript

mysql - Node.js连接失败,无法连接到RabbitMQ

Java Jetty WebSocket 服务器 : Handle broadcasts with asynchronously disconnecting clients

Javascript 将这个参数和其他参数传递给函数

javascript - 想要在 javascript 中编写正则表达式,它将检查所有提到的字符是否至少存在