如何限制Q许诺并发?

如何限制Q许诺并发?,第1张

如何限制Q许诺并发?

我有一个库可以为您做到这一点https://github.com/ForbesLindesay/throat

您可以通过browserify使用它,也可以从brcdn(https://www.brcdn.org/?module=throat&version=latest)下载独立的版本,并将其添加为脚本标记。

然后(假设

Promise
构造函数在您的环境中已填充或实现),您可以执行以下 *** 作:

//remove this line if using standalone buildvar throat = require('throat');function limitConcurrency(promiseFactory, limit) {  var fn = throat(promiseFactory, limit);  return function () {    return Q(fn.apply(this, arguments));  }}

您可以直接致电

throat(promiseFactory,limit)
,但会返回一个承诺承诺而不是Q承诺。

我也非常喜欢将它与array.map一起使用。

// only allow 3 parallel downloadsvar downloadedItems = Q.all(items.map(throat(download, 3)));


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5010371.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存