Oi, Jocimar!
Ótima pergunta. É isso mesmo! Toda função async
retorna uma Promise. Você pode testar isso rapidamente usando o interpretador do node no terminal. Pode criar uma função async vazia semRetorno()
e imprimir o resultado dela.
async function semRetorno() {};
console.log(semRetorno());
Você vai ver que o resultado é algo do tipo:
Promise {
undefined,
domain:
Domain {
domain: null,
_events:
[Object: null prototype] {
removeListener: [Function: updateExceptionCapture],
newListener: [Function: updateExceptionCapture],
error: [Function: debugDomainError] },
_eventsCount: 3,
_maxListeners: undefined,
members: [],
[Symbol(kWeak)]: WeakReference {} } }
Ou seja, é uma Promise
. Dessa forma, o async/await
é apenas um açúcar sintático para escrever Promises.
Aqui na Alura você pode encontrar cursos como o EcmaScript 8 e 9, que tratam desse assunto e muito mais.
Se tiver mais alguma dúvida é só falar!
Um grande abraço!