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

.then sendo usado duas vezes

Porque acabo utilizando o .then dessa forma:

let clients = ( ) => {
      return fetch('http://example.com')
      .then(response => {
           return response.json()
       })
      .then(json => {
           return json
      })
}

ao invés de usar apenas assim :

let clients = ( ) => {
      return fetch('http://example.com')
      .then(response => {
           return response.json()
       })
}

vi que o .json retornar uma Promise, mas se eu usar um console.log para visualizar o resultado do response.json() , é diferente de quando utilizo o segundo .then : .then(json => { return json }),

se o json é o retorno do response.json(), não entendi porque quando imprimo diretamente o resultado de response.json() , é diferente do json do segundo then

2 respostas
solução!

Fala ai Rodrigo, tudo bem? Vamos lá:

vi que o .json retornar uma Promise, mas se eu usar um console.log para visualizar o resultado do response.json() , é diferente de quando utilizo o segundo .then : .then(json => { return json }),

Caso você adicione um console.log no primeiro then, ou seja:

console.log(response.json())

Será impresso uma Promise para você, isso porque como você disse a função json da response retorna uma nova Promise.

se o json é o retorno do response.json(), não entendi porque quando imprimo diretamente o resultado de response.json() , é diferente do json do segundo then

Porém, caso o console seja adicionado no segundo then, no caso:

console.log(json)

Aqui já chega os dados quando a Promise anterior da função json foi resolvida, ou seja, será o body da response convertido para um objeto JSON.

Então no primeiro log temos a Promise em si e no segundo temos o resultado após a Promise ser finalizada com sucesso.

Espero ter ajudado.

shooow, ficou bem claro, muito obrigado