@vetsmen

Использование setTimeout в асинхронном цикле?

Использую setTimeout внутри асинхронного цикла, однако делаю что-то не так:
const priceViewer = async () => {
    let items = await connection.query('SELECT * FROM Items WHERE status = 0 ORDER BY price DESC');

	for (let item of items) {
		await setTimeout(() => {
			console.log(item);
		}, 1000);
	}
};

Мне нужно, чтобы каждая итерация цикла проходила раз в секунду. Как я могу это сделать?
  • Вопрос задан
  • 2172 просмотра
Решения вопроса 1
amux
@amux
alp.ac
items = [123, 456, 789];

async function showItems() {
  for (let item of items) {
    console.log(item);
    await sleep(1000);
  }
}

function sleep(ms) {
  return new Promise(resolve => {
    setTimeout(resolve, ms);
  });
}

showItems();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы