一尘不染

提取API请求超时?

javascript

我有一个fetch-api POST要求:

   fetch(url, {
      method: 'POST',
      body: formData,
      credentials: 'include'
    })

我想知道默认的超时时间是多少?以及如何将其设置为3秒或不确定的秒之类的特定值?


阅读 274

收藏
2020-05-01

共1个答案

一尘不染

它没有指定的默认值。该规范根本没有讨论超时。

通常,您可以为诺言实现自己的超时包装器:

// Rough implementation. Untested.
function timeout(ms, promise) {
  return new Promise(function(resolve, reject) {
    setTimeout(function() {
      reject(new Error("timeout"))
    }, ms)
    promise.then(resolve, reject)
  })
}

timeout(1000, fetch('/hello')).then(function(response) {
  // process response
}).catch(function(error) {
  // might be a timeout error
})
2020-05-01