Как прекратить перебор массива в neo-async?

Есть массив [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` завершен.
  • Вопрос задан
  • 308 просмотров
Пригласить эксперта
Ответы на вопрос 1
premas
@premas
Full-stack web-developer
Я не знаю, что такое neo-async, но во всех javascript'ах всегда было так:
var tempArr = [10, 50, 100, 358];

async.eachSeries(tempArr, function(val, index, done){
  console.log('[Перебор массива tempArr] Итерация #' + index);

  if(val == 100) {
    console.log('Нашли нужное значение в массиве! Index = ' + index);
    return false;
  }
  else done();
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы