Как повторить 5xx запросов, используя axios - PullRequest
0 голосов
/ 10 мая 2019

Я хотел бы повторить 5xx запросов, используя axios. У меня есть мой основной запрос в середине блока try catch. Я использую библиотеку axios-retry для автоматической повторной попытки 3 раза.

Используемый мной URL намеренно выбрасывает 503. Однако запрос не повторяется, вместо этого он перехватывается в моем блоке перехвата.

axiosRetry(axios, {
  retries: 3
});

let result;

const url = "https://httpstat.us/503";
const requestOptions = {
  url,
  method: "get",
  headers: {
  },
  data: {},
};


try {

  result = await axios(requestOptions);

} catch (err) {
  throw new Error("Failed to retry")
}

}
return result;

1 Ответ

0 голосов
/ 10 мая 2019

использовать повторить

const retry = require('retry');

const operation = retry.operation({
  retries: 5,
  factor: 3,
  minTimeout: 1 * 1000,
  maxTimeout: 60 * 1000,
  randomize: true,
});

operation.attempt(async (currentAttempt) => {
  console.log('sending request: ', currentAttempt, ' attempt');
  try {

    await axios.put(...);

  } catch (e) {
    if (operation.retry(e)) { return; }
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...