栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用ES6的Promise.all()时限制并发的最佳方法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用ES6的Promise.all()时限制并发的最佳方法是什么?

请注意

Promise.all()
,创建诺言本身不会触发诺言开始工作。

考虑到这一点,一种解决方案是检查承诺何时得到解决,是否应该启动新的承诺,或者您是否已经达到极限。

但是,实际上没有必要在这里重新发明轮子。您可以用于此目的的一个库是

es6-promise-pool
。从他们的例子:

// On the Web, leave out this line and use the script tag above instead. var PromisePool = require('es6-promise-pool')var promiseProducer = function () {  // Your pre goes here.   // If there is work left to be done, return the next work item as a promise.   // Otherwise, return null to indicate that all promises have been created.   // Scroll down for an example. }// The number of promises to process simultaneously. var concurrency = 3// Create a pool. var pool = new PromisePool(promiseProducer, concurrency)// Start the pool. var poolPromise = pool.start()// Wait for the pool to settle. poolPromise.then(function () {  console.log('All promises fulfilled')}, function (error) {  console.log('Some promise rejected: ' + error.message)})


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/374658.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号