У меня есть функция:
static async assign( assigned_data, assigned_by ) {
return new Promise( async ( resolve, reject ) => {
let orders = [];
await assigned_data.map( async( data ) => {
// find each order and update
await data.assigned.map( async( order_id ) => {
await this.findByIdAndUpdate( order_id, {
$set: {
current_assigned: {
user: data._id,
assigned_by: assigned_by,
},
last_assigned_at: Date.now(),
last_assigned_by: assigned_by,
},
$addToSet: {
assigned_history: {
user: data._id,
assigned_by: assigned_by,
}
},
}, ( error, order ) => {
if ( error ) {
console.log( 'error', error );
}
console.log( 'order', order );
orders.push( order );
} );
} );
} );
resolve( orders );
} );
}
Even console.log ('order', order);Распечатайте заказ, но я не могу передать его в массив ордеров.
Но массив ордеров по-прежнему пуст, когда я использую эту функцию.
Когда я использую setTimeout, он извлекает то, что мне нужно.
setTimeout(function() {
resolve( orders );
}, 1000);
Я не хочу использовать setTimeout, потому что я не знаю, сколько времени установить (например, 1000 мс в приведенном выше коде).
Пожалуйста, скажите мне, что не так с моимкод.Большое спасибо!