文章预览
点击上方 程序员成长指北 ,关注公众号 回复 1 ,加入高级Node交流群 1. 通过 AbortController 提前终止 fetch 首先看一个例子,其使用 AbortController 来实现可以提前中止的 fetch: fetchButton.onclick = async () => { const controller = new AbortController(); // 添加取消按钮 abortButton.onclick = () => controller.abort(); try { const r = await fetch( "/json" , { signal: controller.signal}); const json = await r.json(); // 这里执行业务逻辑 } catch (e) { const isUserAbort = e.name === "AbortError" ; // 如果是 AbortController 取消的则是 AbortError(一种 DOMException) } }; 上面示例展示了在 AbortController 出现之前不可能实现的事情,即 主动取消网络请求 。浏览器将提前终止 fetch,从而节省用户网络带宽。当然,提前终止也不必非要由用户手动发起。 上面示例中 controller.signal 返回的是 AbortSignal ,其
………………………………