Это не похоже на User.updateOne
возвращает обещание (может быть ошибочным, но я предполагаю, что это не так), оно принимает обратный вызов, поэтому await
- если оно ничего не сделает.
РЕДАКТИРОВАТЬ: Один из способов решить эту проблему - создать обещание, подобное этому:
edit_settings = async function (params) {
let res; // the `resolve` method of a promise
const p = new Promise(r => res = r);
User.updateOne({ _id: params.id }, query, (error, update_result) => {
console.log({ control : 1 });
res(); // resolve the promise
if (error) return { success: false, error: { code: 1001 } };
else return { success: update_result.nModified };
});
await p;
return { control: 2 };
}
РЕДАКТИРОВАТЬ: Исходя из вашего комментария, что User.updateOne
на самом деле возвращает обещание, тогда вы должны использовать его какthis:
edit_settings = async function (params) {
await User.updateOne({ _id: params.id }, query);
console.log({control:1});
return { control : 2 };
}
Из кода, который вы показали, вы фактически ничего не делаете со значением, возвращаемым из обещания, поэтому я удалил его из вашего кода.