JS 基础: 取消 Ajax 请求(fetch abort)
warning:
这篇文章距离上次修改已过443天,其中的内容可能已经有所变动。
在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。
评论已关闭