AbortController не завершает запрос на выборку - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь создать вспомогательную функцию для автоматического тайм-аута fetch запросов после 2000 мс. Следующий код не прерывает запрос на выборку и вместо этого печатает запрос как обычно через 4000 мс. Код работает в браузере, но не в узле.

require('isomorphic-fetch');
const AbortController = require('abort-controller');

const fetchTimeout = async url => {
  const controller = new AbortController();

  setTimeout(() => {
    controller.abort();
  }, 2000);

  return fetch(url, { signal: controller.signal })
    .then(response => {
      return response;
    })
    .catch(error => {
      throw new Error(error.message);
    });
};

const getStock = async () => {
  return await fetchTimeout('https://httpbin.org/delay/4').then(data =>
    data.json()
  );
};

( async () => 
console.log(await getStock())
)();

1 Ответ

0 голосов
/ 25 октября 2019

Мне удалось решить эту проблему, используя библиотеку node-fetch вместо isomorphic-fetch, без каких-либо других проблем с реализацией. Я зарегистрировал тикет здесь , надеюсь, это может помочь кому-то еще, испытывающему эту неприятную проблему.

...