JS 基础: 取消 Ajax 请求(fetch abort)
在JavaScript中,可以使用AbortController
来取消一个fetch
请求。以下是一个示例代码:
const controller = new AbortController();
const signal = controller.signal;
fetch('https://example.com/data', { signal })
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.log('Fetch error:', error));
// 在需要取消请求的时候
controller.abort();
在上面的代码中,我们首先创建了一个AbortController
实例,然后通过调用其signal
属性获得了一个AbortSignal
对象,该对象可以传递给fetch
请求。我们在fetch
调用中使用了这个signal
属性。
当我们希望取消请求时,我们调用controller.abort()
方法,这将会触发一个"abort"事件在控制器的AbortSignal
上,进而导致所有监听这个信号的Promise
都会被拒绝,并且抛出一个DOMException
异常,错误名为AbortError
。
评论已关闭