Node.js 异步/等待不按顺序执行

Node.js 异步/等待不按顺序执行,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,如何解决这个问题?我总是有1000英镑的余额。我希望余额是3000 var checked = [{ _id: '5d96a7ba5ccc6a5850ee5ae7'}, {_id: '5d96a7ba5ccc6a5850ee5ae7' }, {_id: '5d96a7ba5ccc6a5850ee5ae7}]; var income = 1000; checked.forEach(async x => { let balance = CustomerBalanceModel.fi

如何解决这个问题?我总是有1000英镑的余额。我希望余额是3000

var checked = [{ _id: '5d96a7ba5ccc6a5850ee5ae7'}, {_id: '5d96a7ba5ccc6a5850ee5ae7' }, {_id: '5d96a7ba5ccc6a5850ee5ae7}];
var income = 1000;

checked.forEach(async x => {

    let balance = CustomerBalanceModel.findOne({user_id: x._id}).exec();

    let balanceValue = {
        balance: (balance + income),
        user_id: x._id,
        updated_at: dateFormatter.date(date)
    }
    await CustomerBalanceModel.findOneAndUpdate({user_id: x._id}, balanceValue, { upsert: true, new: true }).exec();
})


您忘记在第一次异步操作之前键入
等待

let balance = await CustomerBalanceModel.findOne({user_id: x._id}).exec(); 
所以只需在
CustomerBalanceModel.findOne(…)之前添加
wait