Рубрики
Без рубрики

Как замедлить цикл в JavaScript

У меня был цикл, в котором я хотел вызвать API несколько раз, например, 500 раз. API-интерфейсы реализуют ограничение скорости, и даже если нет, просто нехорошо делать столько запросов за очень короткое время. Поэтому я хотел замедлить цикл. Как? Оказывается, это довольно просто, как только вы настроите функцию sleep(), которую вам не нужно менять: const sleep = (миллисекунды) => {вернуть новое обещание(разрешить => setTimeout(разрешить, миллисекунды)) } Затем вы можете вызвать await sleep(1000), чтобы останавливать 1 секунду на каждой итерации, например:

У меня был цикл, в котором я хотел вызвать API несколько раз, например, 500 раз.

API-интерфейсы реализуют ограничение скорости, и даже если нет, просто нехорошо делать столько запросов за очень короткое время.

Поэтому я хотел замедлить цикл. Как?

Оказывается, это довольно просто, как только вы настроите функцию sleep(), которую вам не нужно менять:

const sleep = (milliseconds) => {
  return new Promise(resolve => setTimeout(resolve, milliseconds))
}

Затем вы можете вызвать ожидание сна(1000) , чтобы останавливать 1 секунду на каждой итерации, например:

const list = [1, 2, 3, 4]
const doSomething = async () => {
  for (const item of list) {
    await sleep(1000)
    console.log('🦄')    
  }
}

doSomething()

Оригинал: “https://flaviocopes.com/how-to-slow-loop-javascript/”