asynchronous - 如何在 AbortController.abort() 之后启动另一个请求?
问题描述
我已经阅读了有关使用AbortController.abort()取消获取请求的信息。有没有办法在调用此命令后再次启动请求而不中止它?
例如,在MDN 的这个演示中,一旦单击取消下载,单击下载视频将再次触发提取,但会立即中止。
有没有办法再次允许这个请求而不中止它?那么,在这种情况下,如何单击“下载视频”开始下载,单击“取消下载”取消下载,然后再次单击“下载视频”重新开始下载?例如,如果用户意外点击取消下载...
解决方案
例如,在 MDN 的这个演示中,一旦点击取消下载,点击下载视频将再次触发提取,但立即中止。
他们修正了这个例子。单击后,Cancel download
您将能够开始新的下载并一次又一次地取消它。为了实现每次都Download button
实例化一个新的AbortController,因此您每次都会获得一个新的中止信号:
downloadBtn.addEventListener('click', fetchVideo);
function fetchVideo() {
controller = new AbortController;
signal = controller.signal;
// ...
因此,可以为您可能希望取消的每个请求实例化新的 AbortControllers。
推荐阅读
- apache-camel - 骆驼路线测试期间的 NPE
- python - 如何在 python 中输入提示名称元组?
- floating-point - 这是 WebGL 着色器中浮点精度受限的例子吗?
- pandas - ImportError:无法导入名称“AccessorProperty”
- html - 为什么 flexbox 用特定值改变我的 div 的宽度
- angularjs - 文件上传后删除文件
- clang - 如何覆盖 clang libtooling -version 选项以显示我的程序的版本
- azure - Azure .NET Core WebAPI 抱怨 HttpClient.GetAsync()
- node.js - Mongoose (Mongodb) 按填充字段排序
- javascript - 如何创建正则表达式来验证 linux 路径并允许使用变量