jjzjj

eachLimit

全部标签

javascript - ES6 Promise 替换 async.eachLimit/async.mapLimit

在async,如果我需要将异步函数应用于1000个项目,我可以这样做:async.mapLimit(items,10,(item,callback)=>{foo(item,callback);});以便同时处理10个项目,限制开销并允许控制。使用ES6promise,虽然我可以轻松做到:Promise.all(items.map((item)=>{returnbar(item);}));这将同时处理所有1000个项目,这可能会导致很多问题。我知道Bluebirdhavewaystohandlethat,但我正在寻找ES6解决方案。 最佳答案

node.js - Node.js async eachLimit 在这种情况下如何工作?

我写了一点async用于将大量JSON文件批量插入MongoDB分片集群的脚本。这是我第一次使用此模块(我仍在学习Node.js)。我不知道我这样做对不对。代码是waterfall的最后一部分(一):前面的函数结束使用具有db、coll和files属性的对象。files数组包含数百个文件路径和函数应用到数组的每个元素也是一个waterfall(2)。waterfall(2)由以下部分组成:读取、解析、插入。当这个waterfall结束时(3)我调用complete来完成数组中单个项目的处理,并传递错误(如果有)。到目前为止一切顺利,对吗?我无法理解的是async.eachLimit回调