Итак, вам нужно разделить код. Один фрагмент должен быть выполнен в синтаксисе async / await, а другой - как обычно.
Во-первых, что я хочу сказать, если вы сделаете следующее
async function test() {
console.log('The rest of the code here continues to execute');
const users = await getUsersFromDB();
// Code in here is not executed until promises returns
console.log(users);
}
, которое поможет. Это может показаться немного странным, потому что мы только немного переместили строку, это не то, что мы хотели сделать, но ...
Ключевое слово await
останавливает выполнение функции async
, но у нас есть некоторый код, который должен продолжать работать в то время, когда await
замораживает функцию, это означает, что мы не можем поместить код после await
, только до.
Насколько я понимаю, код Тахат обозначается как «Остальной код здесь продолжает выполняться» также может быть асинхронным, поэтому полученный пример будет следующим:
async function test() {
console.log('Some synchronous code');
setImmediate(() => {
console.log('Some asynchronous code');
});
const users = await getUsersFromDB();
// Code in here is not executed until promises returns
console.log(users);
}