【问题标题】:Loop callback in async.waterfall node jsasync.waterfall 节点 js 中的循环回调
【发布时间】:2016-02-24 17:04:31
【问题描述】:

我想在每个循环的 else 中执行回调。在我的控制台中,我写了“找到”,但没有执行回调......

   async.waterfall([
      function readFile(callback){
        console.log("Start async");
        var params = {Bucket : "MyBucket", Key: "MyKey"};

        reads3.getObject(params, function extract(err,data) {
          //read a json object
          console.log("Start reading");
          callback(err,data);
         });
      },
      function(data, callback){
        var content = data.Body.toString('utf-8').trim();
        var jsonparse = JSON.parse(content);
          async.each(config, function(item) {
          var currentPath = item.path;
            if((key.search(currentPath)) === (-1)) {
              console.log("No found !");
            } else {
                console.log("Found");
                callback(jsonparse);
            }
          });
      },
      function(jsonparse){      
        console.log("In the 2nd loop !");
      }
    ]);

【问题讨论】:

  • 你的async.each itearatee 函数缺少回调参数,例如here
  • 这是我的错误,谢谢它有效!!!!!!

标签: node.js amazon-web-services asynchronous waterfall


【解决方案1】:

你可以试试这个

 async.waterfall([
          function readFile(callback){
            console.log("Start async");
            var params = {Bucket : "MyBucket", Key: "MyKey"};

            reads3.getObject(params, function extract(err,data) {
              //read a json object
              console.log("Start reading");
              callback(err,data);
             });
          },
          function(data, callback){
            var content = data.Body.toString('utf-8').trim();
            var jsonparse = JSON.parse(content);
              async.each(config, function(item) {
              var currentPath = item.path;
                if((key.search(currentPath)) === (-1)) {
                  console.log("No found !");
                } else {
                    console.log("Found");
                    callback(null,jsonparse);
                }
              });
          },
          function(jsonparse,callback){      
            console.log("In the 2nd loop !");
            callback(null,'result');
          }
        ],function(err,data){
//your data is result
//......Your function script
});

【讨论】:

    猜你喜欢
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多