【发布时间】:2017-06-19 04:55:59
【问题描述】:
我一直在使用新的fetch API 而不是旧的XMLHttpRequest
这很棒,但我缺少一个关键功能,xhr.abort()。
我找不到任何有关获取该功能的信息。
谢谢。
更新: 用于中止提取的 hacky 解决方法https://github.com/Morantron/poor-mans-cancelable-fetch
基本上你在 web worker 中启动 fetch 并取消 web worker 以中止 fetch
【问题讨论】:
-
那是因为你不能取消 fetch :( 见:github.com/tc39/proposal-cancelable-promises/issues/70 github.com/whatwg/fetch/issues/27 所以如果你真的需要中止请求,坚持使用 XHR
-
解决方法似乎有点过头了,我最好先填充 fetch 然后添加缺少的功能
-
来自 Google 的开发者网站:Abortable fetch
-
感谢您的更新!虽然这意味着您需要为每次提取创建并保留一个 AbortController ,但您希望能够中止(如果您可以中止一组提取,您将需要更少)并且在每次提取后销毁相应的已保存控制器 - 不意味着一个完美的解决方案,但比解决方法更好