обратный вызов завершения итерации не вызывается - PullRequest
0 голосов
/ 23 сентября 2011

с использованием https://github.com/caolan/async борется за то, чтобы запустить цикл с помощью асинхронного режима, поэтому поиск конца цикла выполняется. и

 results=[]
async.forEach(nfiles, function(item ){
    console.log(item);
        results.push(item);


}, function(err){ /// result call back 
    console.log('in last');

});     

почему консоль не приходит в результате обратного вызова?

предположим, что nfiles является массивом и на каждой итерации помещает элемент в результаты, поэтому в конце итерации он должен поддерживать inlast в консоли, но не делает этого.

1 Ответ

3 голосов
/ 23 сентября 2011

Второй аргумент вашей forEach - функции итератора - должен принять обратный вызов в качестве аргумента и вызвать его при выполнении (чтобы показать, что это сделано). Вам нужно позвонить в ответный звонок так:

results=[]
async.forEach(nfiles, function(item, callback){
    console.log(item);
    results.push(item);
    callback(null, item);

}, function(err){ /// result call back 
    console.log('in last');

});

(непроверенные)

...