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

Como tratar o retorno da cunção fetch?

Ola Pessoal, Criei um arquivo com o nome 3.1-TestaPromiseFinally e ele possui o codigo abaixo. Porem como eu faria para acionar a função e processar o retorno dela através do console.log (sem usar o HTML)?

obrigado


function ListaLivrosJavaScript (){

    return fetch ("https://www.googleapis.com/books/v1/volumes?q=javascript")
    .then (data => data.json())
    .then (data => data.items.map (item => item))
    .then (data => data.map (item => item.volumeInfo))
    .then (data => data.map(item => item.title))
    .then (data => console.log(data)); 
};
2 respostas
solução!

Olá Felipe, tudo bem?

Você poderia explicar um pouco melhor o que você pretende fazer? Se pedirmos um console.log no último then não iremos conseguir processar o retorno pois teremos undefined ( retorno do console.log)

No caso para tratar fora do html teríamos algo da seguinte maneira:

function ListaLivrosJavaScript (){

    return fetch ("https://www.googleapis.com/books/v1/volumes?q=javascript")
    .then (data => data.json())
    .then (data => data.items.map (item => item))
    .then (data => data.map (item => item.volumeInfo))
    .then (data => data.map(item => item.title))
    };

E no mesmo arquivo, ou em outro, teríamos o seguinte trecho:

listaLivrosJavacript().then( retorno => console.log(retorno))

E aqui sim ao invés do console.log podemos tratar os dados corretamente :)

Utilizando o async & await podemos encapsular esse útlimo código, por exemplo:

async function main() {
    const retorno = await ListaLivrosJavascript();
    console.log(retorno);
}

Então quando queremos usar fora do html temos essas duas abordagens, pois o retorno da nossa função continua sendo uma promise ::)

Agora caso não foi isso que você quis dizer, poderia dar um outro exemplo ?

Abraços e Bons Estudos!

Muito bom meu amigo! Era exatamente essa a minha duvida... obrigado