AbortController
AbortController 是一个可用于中止异步操作的 API。
语法
创建 AbortController 对象:
javascript
const controller = new AbortController()AbortController 对象有两个属性:
AbortController.signal:一个AbortSignal对象,它可以用来注册事件处理程序,以便在中止时通知。AbortController.abort(reason):一个方法,用于中止异步操作,可以传递中止原因。
AbortSignal
AbortSignal 表示一个信号对象。
属性:
AbortSignal.aborted:一个布尔值,表示是否已经中止。AbortSignal.reason:表示中止的原因。AbortSignal.throwIfAborted():如果已经中止则抛出异常,否则不做任何事情。
静态方法:
AbortSignal.abort():返回一个已经中止的AbortSignal对象。AbortSignal.timeout(time):返回一个AbortSignal对象,它在指定的时间后中止。
事件:
abort:当中止时触发。
例如:
javascript
abortSignal.addEventListener('abort', (event) => {
console.log('aborted', event.target.reason)
})AbortController 示例
上面说到 AbortController 对象有一个 signal 属性,表示一个 AbortSignal 对象。我们可以通过这个对象来监听中止事件。 而 AbortController.abort() 方法用于触发中止事件。
javascript
const controller = new AbortController()
const signal = controller.signal
signal.addEventListener('abort', (event) => {
console.log('aborted', event.target.reason) // aborted some reason
})
controller.abort('some reason')