【发布时间】:2016-03-15 04:23:07
【问题描述】:
我该如何做类似$q.all 但限制并发执行的承诺数量?
我的问题就像How can I limit Q promise concurrency?
我希望一次生成的进程不超过 5 个
另一个问题的公认答案是为promise 编写的库,包装后可与Q 一起使用。
但我对 Angular 的 $q 而不是 Q 的解决方案特别感兴趣。
背景:正在解决的问题:
我有一堆文件要分两步下载:a) 获取 URL b) 下载文件.
浏览器限制了可以同时检索的文件数量,因此当直接使用带有 $q.all 的 Promise 触发所有下载时,只有 N 立即发生,例如6 在 Chrome 中,而其余的则延迟。 (见Max parallel http connections in a browser?)
问题是网址已经过期,所以当浏览器执行时 N+1th 文件下载,网址不再有效。
所以我想做throttled.all(6, promises)而不是$q.all(promise)
【问题讨论】:
标签: angularjs concurrency promise angular-promise