【发布时间】:2015-11-08 19:13:43
【问题描述】:
试图弄清楚如何找到功能与 async.eachSeries 完全相同的东西,我需要一个按顺序运行(而不是并行)的异步操作列表,但在本机 ES6 中找不到方法,可以有人建议吗?
附言考虑过生成器/产量,但还没有经验,所以我没有意识到它到底能对我有多大帮助。
编辑 1
每个请求,这里是一个例子:
假设这段代码:
let model1 = new MongooseModel({prop1: "a", prop2: "b"});
let model2 = new MongooseModel({prop1: "c", prop2: "d"});
let arr = [model1 , model2];
现在,我想以一系列而不是并行的方式运行它,因此使用“异步”NPM 很容易:
async.eachSeries(arr, (model, next)=>{
model.save.then(next).catch(next);
}, err=>{
if(err) return reject(error);
resolve();
})
我的问题是:使用 ES6,我可以在本地实现吗?没有 NPM 'async' 包?
编辑 2
使用 async/await 可以轻松完成:
let model1 = new MongooseModel({prop1: "a", prop2: "b"});
let model2 = new MongooseModel({prop1: "c", prop2: "d"});
let arr = [model1 , model2];
for(let model of arr){
await model.save();
}
【问题讨论】:
-
你的意思是,第二个函数取决于第一个函数的结果?
-
不是必须依赖它,而是必须在前一个完成后运行。
-
您应该举一个例子并说明示例输入和预期输出,以正确解释问题。
-
加了个例子,谢谢!
标签: javascript asynchronous ecmascript-6 es6-promise