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