我有一个fetchapiPOST请求:
获取(url、{
方法:“POST”,
正文:formData,
凭据:“包括”
})
我想知道这个的默认超时是多少?我们如何将它设置为一个特定的值,比如3秒或无限秒
使用promise race解决方案将使请求保持挂起状态,并且仍然在后台消耗带宽,并降低仍在处理中的最大允许并发请求数
而是使用AbortController来实际中止请求,下面是一个示例
const controller=new AbortController()
//5秒超时:
const timeoutId=setTimeout(()=>;controller.abort(),5000)
获取(url,{signal:controller.signal}){
//触发超时之前已完成请求
//如果您只想超时请求而不是响应,请添加:
//clearTimeout(超时ID)
})
AbortController还可以用于其他用途,不仅可以用于获取,还可以用于可读/写流。越来越多的新功能(特别是基于承诺的功能)将越来越多地使用此功能。NodeJS也在其流/文件系统中实现了AbortController。我知道web bluetooth也在研究它。现在,它还可以与addEventListener选项一起使用,并在信号结束时停止监听