Oi Gabriela, tudo bem?
Sua linha de raciocínio está correta.
A palavra-chave async
indica que a função retornará uma Promessa. Quando usamos await
dentro de uma função async
, estamos dizendo para o JavaScript esperar a resolução da Promessa antes de continuar com a execução do código.
No seu código, a função getBuscarLivrosDaApi
é declarada como assíncrona (async
), o que significa que ela retornará uma Promessa.
Dentro dessa função, você faz uma requisição para a API usando fetch(endPointDaApi)
. O fetch
também retorna uma Promessa que resolve para a resposta da requisição. Como você quer esperar que essa Promessa seja resolvida antes de continuar, você usa await
antes do fetch
.
Depois disso, você tem a resposta da requisição (res
), mas essa resposta não está no formato JSON ainda. Para converter a resposta para o formato JSON, você usa res.json()
, que também retorna uma Promessa. Novamente, você usa await
para esperar que essa Promessa seja resolvida.
Finalmente, você atribui o resultado (os livros no formato JSON) à variável livros
.
Então, sim, sua leitura do código está correta: a função getBuscarLivrosDaApi
retorna uma Promessa que resolve para a lista de livros no formato JSON. Essa Promessa é resolvida apenas depois que as Promessas retornadas pelo fetch
e pelo res.json()
são resolvidas.
Espero ter ajudado.
Um abraço e bons estudos.