Есть массив [10, 50, 100, 358]
При переборе, когда встретим значение 100, нужно прекратить перебор. Как это сделать в neo-async (Модуль)?
var tempArr = [10, 50, 100, 358];
async.eachSeries(tempArr, function(val, index, done){
console.log('[Перебор массива tempArr] Итерация #' + index);
if(val == 100) {
console.log('Нашли нужное значение в массиве! Index = ' + index);
done(); // Вот здесь нужно вызвать break, но как это сделать в neo-async?
}
else done();
});
Можно сделать фейковую ошибку и перебор завершится, но мне это не подходит, т.к. если это сделать, все родительские циклы тоже прекратят работу.
Пример последнего:
var tempArr = [3, 5];
var tempArr2 = [10, 50, 100, 358, 400];
async.eachSeries(tempArr, function(val, index, done){
console.log('\n -> [Перебор массива tempArr] Итерация #' + index);
async.eachSeries(tempArr2, function(val2, index2, done2){
console.log('[Перебор массива tempArr2] Итерация #' + index2);
if(val2 == 100) {
console.log('Нашли нужное значение в массиве! Index = ' + index2);
done2({'break': true}); // Fake Error
}
else done2();
}, done);
},
function(){
console.log('\n Перебор массив `tempArr` завершен.');
});
На выходе получаем следующие:
-> [Перебор массива tempArr] Итерация #0
[Перебор массива tempArr2] Итерация #0
[Перебор массива tempArr2] Итерация #1
[Перебор массива tempArr2] Итерация #2
Нашли нужное значение в массиве! Index = 2
Перебор массив `tempArr` завершен.