Аксиос (или узел) застревает, если петиция не проходит - PullRequest
1 голос
/ 27 октября 2019

У меня есть следующий код:

import axios from "axios";

export async function get(url: string, n: number = 10) {
  let error;
  for (let i = 0; i < n; i++) {
    try {
      console.log("This get executed");
      await axios({ method: "get", url: url, responseType: "document" });
    } catch (err) {
      console.log("This code does not");
      error = err;
    }
  }
  throw error;
}

get("https://manganeo.com/")
  .then(response => console.log(response))
  .catch(err => console.log(err));

Я пытаюсь повторить петицию до ее успеха. Если вы звоните get с существующим URL-адресом, это работает хорошо. Тем не менее, если URL возвращает ошибку 404. Эта функция зависает.

Есть идеи, что происходит?

1 Ответ

1 голос
/ 27 октября 2019

Кажется, Axios не поставляется с установленным по умолчанию таймаутом , поэтому я предполагаю, что ваш запрос никогда не истекает по тайм-ауту и ​​зависает бесконечно.

Попробуйте еще раз с тайм-аутом ипосмотрим, исправит ли это:

await axios({ method: "get", url: url, timeout: 10000, responseType: "document" });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...