2016-03-30 5 views
0

Почему async.jseach до сих пор работает без вызова callbackAsync.js каждый по-прежнему без обратного вызова

var async = require('async'); 

var arr = ['a', 'b', 'c', 1, 2, 3]; 

async.each(arr, function(item, callback) { 
    console.log(item); 
}, function(error) { 
    if (error) console.log(error); 
}); 

в результате я могу увидеть в терминале каждый элемент массива, но, как я понимаю, что не должно быть, до вызова callback , правильно?

ответ

1

async.each просто вызывает обратный вызов цикла для каждого элемента массива. Если они асинхронны, они будут запускаться одновременно.

Вы никогда не попадаете в свой последний обратный вызов, так как ваши «асинхронные задачи» остаются навечно ожидающими, даже не называя callback. Это проблема с вашим кодом.

Если вы не хотите видеть следующий элемент, пока предыдущий не вызвал его callback, вместо этого вы должны использовать async.eachSeries.

Смежные вопросы