有这样两段话:
function dbFuc(db) { //这里不需要 async
let docs = [{}, {}, {}];
// 可能得到错误结果
docs.forEach(async function (doc) {
await db.post(doc);
});
}
//上面代码可能不会正常工作,原因是这时三个db.post操作将是并发执行,也就是同时执行,而不是继发执行。正确的写法是采用for循环。
async function dbFuc(db) {
let docs = [{}, {}, {}];
for (let doc of docs) {
await db.post(doc);
}
}
请教为什么forEach
的三个db.post操作将是并发执行,而for循环
不是?谢谢~
应为foreach只是调用了你传入的回调,并不关心结果
for则是要执行代码块语句完成后才会执行下一次循环