NodeJs push in array not working within the async function

Here is my code…

var schedule =new Schedule(
                flightNumber: req.body.flightNumber,
                status: req.body.status,
                pickDateTime: req.body.pickDateTime,

            if(req.body.passenger.length > 0){

                await req.body.passenger.forEach(async function (data) {
                    var driver
                    await Driver.findOneAndUpdate({area:data.location_code,$expr: { $gt:["$vehicle_capacity", "$capacity_occupied"]}},{ $inc: { capacity_occupied: +1 } }).then((drivers) => {
                        driver = drivers._id
                    await schedule.passenger.push({
                        driver: driver,
                        dropLocation: req.body.dropLocation,
                        droplong: req.body.droplong,
                        picklong: data.long

When I’m trying to access schedule.passenger inside the async function It’s working but when trying to access outside the async function it’s not working.


forEach(async function will fire bunch of async functions and once array iterations are complete, the execution will move to next code block without waiting for all the async functions to complete.

This can be taken care of by using map function and returning promises and wait for all those.

let allPromises = function (data) {
 //your code goes here

Promise.allSettled(allPromises).then(() => {

Also await schedule.passenger.push({ is not correct because Array.prototype.push() is not an async operation.

Source: stackoverflow