SetTimeout для fetch () не работает в Mozilla и Safari - PullRequest
2 голосов
/ 24 апреля 2019

Мне нужно установить тайм-аут для извлечения в реакции, в Google Chrome все выглядит хорошо (тайм-аут работает как положено), но в Firefox и Safari он не работает. Я вижу просто обычную выборку без таймаута в Mozilla, без ошибок, просто без ограничения 15 секунд.

У меня есть тайм-аут функции и я использую его при получении. Как я могу исправить мою ошибку? Мне нужно установить ограничение 15 секунд в любом браузере. Почему это не работает в Firefox и Safari?

Часть моего кода ниже

function timeout (value, promise) {
  return new Promise(function (resolve, reject) {
    setTimeout(function () {
      reject(new Error('Sorry, request timed out.'));
    }, value)
    promise.then(resolve, reject)
  })
}
return function (dispatch) {
  dispatch(requestConfig())
  return timeout((15*1000), fetch('/config/local?standards=', {
    credentials: "include",
  }))
  .then(response => response.json())
  .then(json => {
    const {
      // some code = json
    }
  }) 
  .catch((err) => {
    console.log('ERROR:' + err)
    dispatch(catchErrorFetch())
  })
}

Я ожидаю ошибку перехвата («Извините, истекло время ожидания запроса») через 15 секунд в любом браузере

...