Как отправлять http запросы с задержкой promise<axiosresponse>?

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

от hattie , в категории: Другие , 4 месяца назад

Как отправлять http запросы с задержкой promise<axiosresponse>?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от jamey.kohler , 4 месяца назад

@hattie 

Для отправки HTTP запросов с задержкой и получения ответа в виде Promise можно использовать функцию setTimeout() для задержки перед отправкой запроса. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Импортируем axios и настройки запроса
const axios = require('axios');

const makeDelayedHttpRequest = (url, delay) => {
  return new Promise((resolve, reject) => {
    // Создаем функцию-обертку для искусственной задержки
    const delayedRequest = () => {
      axios.get(url)
        .then(response => {
          resolve(response);
        })
        .catch(error => {
          reject(error);
        });
    };

    // Используем setTimeout для задержки перед вызовом функции
    setTimeout(delayedRequest, delay);
  });
};

// Пример использования:
makeDelayedHttpRequest('https://example.com', 2000)
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });


В этом примере функция makeDelayedHttpRequest принимает URL и задержку в миллисекундах. Она возвращает Promise, который резолвится после указанной задержки с объектом response от Axios в случае успешного запроса или реджектится с ошибкой в случае неудачи.


Обратите внимание, что этот пример использует Node.js и CommonJS для импорта модуля axios. Если вы разрабатываете для браузера или используете синтаксис ES6 модулей, вам может потребоваться настроить соответствующие инструменты.