@Dale-Lin
2022-08-29T20:46:22.000000Z
字数 609
阅读 264
web_APIs
AbortController
类表示一个可以用来终止请求的控制器。
const controller = new AbortController()
AbortController.signal
AbortSignal
对象实例,往往需要传给被控制的请求。AbortController.abort([reason])
fetch
请求,如果指定 reason
字段,会被设置为 AbortError
的异常。fetch
请求在被 abort 时会 reject 一个名为 AbortError
的 DOMException
错误。
try {
const controller = new AbortController()
const { signal } = controller
const res = await fetch(
'someResourceUrl',
{ signal }
)
const body = await res.json()
setTimeout(() => {
controller.abort()
}, 1_000)
} catch (er) {
if (er.name === 'AbortError') {
// abort
console.log('Abort!')
} else {
// network error
console.log(`Type: ${e.name}, Message: ${e.message}`)
}
}