在异步中,如果我需要对1000个项目应用异步函数,我可以这样做:
async.mapLimit(items, 10, (item, callback) => {
foo(item, callback);
});
Run Code Online (Sandbox Code Playgroud)
这样只能同时处理10个项目,从而限制了开销并允许控制.
有了ES6的承诺,我可以很轻松地做到:
Promise.all(items.map((item) => {
return bar(item);
}));
Run Code Online (Sandbox Code Playgroud)
这将同时处理所有1000个项目,这可能会导致很多问题.
我知道Bluebird有办法解决这个问题,但我正在寻找ES6解决方案.