angularjs – 我如何限制角度$q承诺并发?
我如何做$q.all这样的事情但是限制同时执行多少个promises?
我的问题就像How can I limit Q promise concurrency?
对于另一个问题,已接受的答案是为promise编写的库,与Q一起工作. 背景:问题正在解决: 解决方法
如果“全部”Promises的解析无关紧要(就像你正在更新页面上的某些元素而你不关心它是否是渐进的而不是一个’嗖’)我创建了一个简单的TaskQueue服务.它不会等待所有Promise被解决,而是会处理它获得的所有添加的Promises / Functions / Tasks以及最大值.配置的限制值的并发性.
因为我只发现了这个和其他一些StackOverflows没有帮助解决我的问题.所以现在我想回馈社区.希望它对某人有帮助. 它使用现代JS的东西,如const和lambda表达式,但如果你只是想要“旧”的东西,你可以简单地让它从像babel这样的预编译器中编译下来. https://gist.github.com/Blackskyliner/8b1bafed326044fa4f8b1ba2627d1117 它只是简单地处理其队列之后的任务,它们只是匿名函数,返回一个promise或值,被添加.它将遵循服务上可配置的“maxConcurrentTasks”变量. 如果Task返回一个返回promise的promise,那么它将始终使用队列中的初始’slot’.因此,在解决(或拒绝)整个任务承诺链之后,它将释放“插槽”以用于其他添加的任务. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |