首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XHR进度事件微任务队列

XHR进度事件微任务队列
EN

Stack Overflow用户
提问于 2015-06-05 11:43:14
回答 1查看 267关注 0票数 0

我想用XHR和承诺。我在HTML5 rocks (1)和Mozilla的网站(2)上创建了一个XHR承诺。

它不像预期的那样起作用。如果我有以下顺序来加载和处理一个文件:

代码语言:javascript
复制
sequence = xhrPromise('filename').
  .then(parseFile)
  .then(processFile)
  .then(allSet);

如果我只运行1序列,它就会像预期的那样工作。

如果我尝试使用Promise.all()运行N个序列来下载/处理N个文件,它就会中断。

所有下载都以“并行”方式开始,然后一旦第一个XHR请求完成,它将停止其他文件的下载,运行该文件的完整序列,然后继续下载剩余的文件。然后,一旦另一个文件完成,它会阻塞下载,运行该文件的序列,然后继续下载等等。

这似乎是预期的行为,因为XHR进度事件被抛出主任务队列,并且承诺使用微任务队列。

说得通吗?

看起来,如果我使用"fetch“API而不是XHR,它就会像预期的那样工作,但是不能监视下载的进度对我来说是一个障碍。

有什么好办法解决这个问题吗?

(1) http://www.html5rocks.com/en/tutorials/es6/promises/

(2) 对象/承诺

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-06 17:59:24

它将停止其他文件的下载。

您这是什么意思?IO发生在主线程之外,即使执行javascript,下载也会继续。虽然如果您对结果做了一些繁重的处理,但您可能希望查看网络工作者,以避免阻塞主UI线程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30665682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档