ждать внутри цикла и прерывать цикл, если условие соответствует - PullRequest
0 голосов
/ 06 октября 2019

У меня есть массив. Мне нужно перебрать массив, пока данные не найдены. Как только данные найдены, мне нужно прервать цикл и просто вернуть эти данные.

const arrayData = ['1', '2', '3']

for (let i = 0; i < arrayData.length; i++) {
  data = await getSomeDataFromDB(arrayData[i]) // get data from DB
  if (data.length >= 1) { break } // If found break for loop else iterate again
}
return { items: data }

Я использовал приведенный выше код. Это правильный путь или любой другой лучший способ справиться с подобным сценарием?

Цените вашу помощь!

Ответы [ 2 ]

1 голос
/ 06 октября 2019

Вы можете опустить неявный глобальный vairable, просто вернувшись из цикла:

for (const entry of arrayData) {
   const items = await getSomeDataFromDB(entry) // get data from DB
   if (items.length >= 1) 
      return { items };
}
0 голосов
/ 06 октября 2019

Я предлагаю использовать для ожидания

Оператор for await ... создает цикл, повторяющийся как по асинхронным итерируемым объектам, так и по синхронизируемым итерациям, включая: built-in String, Array, Array-подобные объекты (например, аргументы или NodeList), TypedArray, Map, Set и определенные пользователем асинхронные / синхронизируемые итерации. Он вызывает пользовательский итерационный хук с инструкциями, которые должны быть выполнены для значения каждого отдельного свойства объекта.

...