2016-04-17 2 views
0

У меня есть следующие функции с использованием async.jswaterfall метод:Получение ответа на успех обратного вызова async.js водопад метод

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 ответ в success обратного вызова для waterfall.

Я попробовал несколько различных ароматов делают callback(err,data) => next(err,response) и ------ SUCCESS всегда неопределенными.

Что мне не хватает?

+0

попробуйте с async.map, который даст вам массив результатов. –

ответ

1

По-видимому, я отсутствовал, используя async.map() вместо async.each(). async.each() не возвращает значений, как и следовало ожидать. Использование async.map() даст вам ответ возврата, чтобы вы могли передавать значения по цепочке.