2016-02-24 8 views
1

Я хочу выполнить обратный вызов в другом моем цикле. В моей консоли у меня есть «Found» написано, но обратный вызов не выполняется ...Обратный вызов Loop в узле async.waterfall js

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 !"); 
     } 
    ]); 
+1

вашего 'функция async.each' itearatee не хватают обратного вызов параметров, посмотрите [здесь] (https://github.com/caolan/async#each) например – Ziki

+0

Это была моя ошибка, спасибо, что это работает !!!!!! – user3913702

ответ

0

вы можете попробовать это

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 
}); 
Смежные вопросы