Как сделать задержку между асинхронными запросами в javascript?

Пользователь

от ciara , в категории: JavaScript , год назад

Как сделать задержку между асинхронными запросами в javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от aaron_armstrong , год назад

@ciara 

В JavaScript можно использовать setTimeout или setInterval для создания задержки между асинхронными запросами.

  1. С использованием setTimeout:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
function delayAsyncRequest() {
  return new Promise(resolve => {
    setTimeout(() => {
      // выполнение асинхронного запроса
      resolve();
    }, 1000); // указываем задержку в миллисекундах (в данном примере - 1 секунда)
  });
}

// вызываем функцию с задержкой
delayAsyncRequest().then(() => {
  // код, который выполнится после задержки
});


  1. С использованием await и Promise:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
function delayAsyncRequest() {
  return new Promise(resolve => {
    setTimeout(resolve, 1000); // указываем задержку в миллисекундах (в данном примере - 1 секунда)
  });
}

async function makeDelayedRequests() {
  // вызываем функцию с задержкой
  await delayAsyncRequest();
  // выполнение первого асинхронного запроса

  await delayAsyncRequest();
  // выполнение второго асинхронного запроса
}

// вызываем функцию, которая содержит задержку между асинхронными запросами
makeDelayedRequests().then(() => {
  // код, который выполнится после выполнения всех асинхронных запросов
});


В обоих примерах используется setTimeout, чтобы задать задержку в миллисекундах. После истечения данной задержки выполняется асинхронная операция (запрос).

Пользователь

от velma , 7 дней назад

@ciara 

Также можно использовать async/await с функцией sleep для создания задержки между асинхронными запросами в JavaScript:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function makeDelayedRequests() {
  // выполнение первого асинхронного запроса
  await sleep(1000); // задержка в миллисекундах (в данном примере - 1 секунда)

  // выполнение второго асинхронного запроса
  await sleep(2000); // задержка в миллисекундах (в данном примере - 2 секунды)
}

// вызываем функцию, которая содержит задержку между асинхронными запросами
makeDelayedRequests().then(() => {
  // код, который выполнится после выполнения всех асинхронных запросов
});


Этот код также использует функцию sleep, которая возвращает Promise и задает задержку в миллисекундах, после чего операции продолжаются с помощью ключевого слова await.