Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Por que await no retorno de requisicao.json()?

Olá.

Por que no caso do retorno do uso do metódo json() também é necessário utilizar a palavra await?

async function geraRequisicao() {
    var requisicao = await fetch(“https://localhost:5000”);
    var respostaConvertida = await requisicao.json();
}

Preciso colocar await em todas as funções dentro de uma função async?

Obrigado.

2 respostas
solução!

Definindo uma função como async, podemos utilizar a palavra-chave await antes de qualquer expressão que retorne uma promessa. Dessa forma, a execução da função externa (a função async) será pausada até que a Promise seja resolvida.

A palavra-chave await recebe uma Promise e a transforma em um valor de retorno (ou lança uma exceção em caso de erro). Quando utilizamos await, o JavaScript vai aguardar até que a Promise finalize. Se for finalizada com sucesso (o termo utilizado é fulfilled), o valor obtido é retornado. Se a Promise for rejeitada (o termo utilizado é rejected), é retornado o erro lançado pela exceção.

Preciso colocar await em todas as funções dentro de uma função async? R: Sim você vai colocar o await em todas funções que tiverem o async...

Caso ainda não esteja claro você pode acessar esse link da Alura e ler um pouco mais sobre...https://www.alura.com.br/artigos/async-await-no-javascript-o-que-e-e-quando-usar

Espero ter ajudado ...

Oi Victor, agradeço sua resposta.

Vi que o await é utilizado somente para o caso de a função retornar uma promise, então só uso ela nesses casos (isso, claro, dentro de uma função async).

Aí fui dar uma olhada na documentação do método .json() e vi que ele de fato retorna uma promise, por isso a necessidade do await. Eu acho que me confundi com o método toJSON(), que no caso só retorna uma string.

Valeu!