fetch()的SetTimeout在Mozilla和Safari中不起作用

时间:2019-04-24 07:20:17

标签: javascript reactjs fetch settimeout mozilla

我需要设置超时以进行响应,在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秒后都会捕获错误(“抱歉,请求超时。”)

0 个答案:

没有答案