Для показанного вами кода он не имеет никакого смысла, поскольку он - по крайней мере, я предполагаю - промежуточное программное обеспечение express, а expressjs не использует возвращенное обещание этого промежуточного программного обеспечения. И без await
в этом async
промежуточном программном обеспечении изменяется только то, что промежуточное программное обеспечение возвращает Promise
, и, поскольку expressjs не использует возвращенный Promise, поэтому ключевое слово async
здесь бессмысленно и даже вредно, если что-то в authMiddleware
выдает некэшированную ошибку.
И использовать ее without any reason
не имеет смысла. Вы можете использовать async
и await
, чтобы преобразовать длительно выполняющийся синхронный процесс в более мелкие куски, чтобы другой код мог чередоваться, так как await
/ async
позволяет вам вводить некоторую совместную многозадачность. Но только добавление await
/ async
к одной только длительной задаче не помешает вам заблокировать событие l oop.
Если у вас есть такой код:
function testA() {
for( let i=0 ; i<10 ; i++) {
console.log('testA', i)
}
}
function testB() {
for( let i=0 ; i<10 ; i++) {
console.log('testB', i)
}
}
testA();
testB();
console.log('finished');
Тогда вы можете использовать await
и async
, чтобы разрешить чередование другого кода, изменив его на.
async function testA() {
for (let i = 0; i < 10; i++) {
console.log('testA', await i)
}
}
async function testB() {
for (let i = 0; i < 10; i++) {
console.log('testB', await i)
}
}
Promise.all([
testA(),
testB()
]).then(() => {
console.log('finished');
})