大佬教程收集整理的这篇文章主要介绍了angularjs – 我如何限制角度$q承诺并发?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的问题就像How can I limit Q promise concurrency?
对于另一个问题,已接受的答案是为promise编写的库,与Q一起工作.
但我特别感兴趣的是Angular的$q而不是Q的解决方案.
背景:问题正在解决:
我有两个步骤下载的文件:a)获取URL b)下载文件.
浏览器限制了可以同时检索多少文件,因此当使用$q.all直接使用promises时会触发所有下载,只有N会立即发生,例如Chrome中为6,其余则延迟. (见@L_675_11@)
问题是URL已过期,因此当浏览器执行第N个文件下载时,URL不再有效.
所以我想做一些像throttled.all(6,promises)而不是$q.all(promisE)
因为我只发现了这个和其他一些StackOverflows没有帮助解决我的问题.所以现在我想回馈社区.希望它对某人有帮助.
它使用现代JS的东西,如const和lambda表达式,但如果你只是想要“旧”的东西,你可以简单地让它从像babel这样的预编译器中编译下来.
https://gist.github.com/Blackskyliner/8b1bafed326044fa4f8b1ba2627d1117
它只是简单地处理其队列之后的任务,它们只是匿名函数,返回一个promise或值,被添加.它将遵循服务上可配置的“maxConcurrentTasks”变量.
如果Task返回一个返回promise的promise,那么它将始终使用队列中的初始’slot’.因此,在解决(或拒绝)整个任务承诺链之后,它将释放“插槽”以用于其他添加的任务.
以上是大佬教程为你收集整理的angularjs – 我如何限制角度$q承诺并发?全部内容,希望文章能够帮你解决angularjs – 我如何限制角度$q承诺并发?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。