O async / waitit bloqueia o loop de eventos? [duplicado]

Esta pergunta já tem uma resposta aqui:

Async / waitit bloqueiam um thread node.js 5 respostasEm JavaScript, o uso de aguardar dentro de um loop bloqueia o loop? 4 respostas

eu estava lendoNão bloqueie o loop de eventos no guia Node.js. Havia uma linha dizendo:

Você nunca deve bloquear o loop de eventos. Em outras palavras, cada um de seus retornos de chamada em JavaScript deve ser concluído rapidamente. Isto também se aplica ao seuawaité seuPromise.thene assim por diante.

Comecei a me perguntar, e se alguma chamada de API para o banco de dados que eu souawaitdemora para resolver, isso significa que bloqueei o loop de eventos com esseawait ligar?

Depois disso, comecei a testar alguns códigos auto-escritos, mas após o teste ainda não estou claro como o bloqueioawait trabalho. Aqui estão alguns códigos de teste:

Supondo que estou usando express para teste. Entendo por que fazer duas chamadas de API para o/test route bloqueia o loop de eventos nesse caso.

function someHeavyWork() {
  // like calling pbkdf2 function
}

app.get('/test', (req, res) => {
  someHeavyWork();
  res.json(data);
});

Mas isso não acontece neste caso.

function fakeDBCall() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(data);
    }, 5000)
  })
}

app.get('/test', async (req, res) => {
  const data = await fakeDbCall();
  res.json(data);
})

Isso pode ser devido à minha falta de compreensão de como funciona o bloqueio no caso deasync/await.

questionAnswers(3)

yourAnswerToTheQuestion