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

Explicação mais detalhada do código dessa aula

Estou na aula 2 "consumindo a api externa" e gostaria de mais detalhes do código nos pontos comentados abaixo e também saber se os meus comentários estão corretos:

importarDados() {

    function isOK(res: Response) { // não entendi o que  é Response. Seria o tipo resposta ou algo assim? Mas aí como ele é exatamente?

        if(res.ok) { //O ok testa se há algum erro, é isso?
            return res; // retorna res se não houver erros
        } else {
            throw new Error(res.statusText);
        }
    }

    fetch('http://localhost:8080/dados')
        .then(res => isOK(res)) // arrow function com o res que seria a resposta
        .then(res => res.json()) // resposta JSON
        .then((dados: any[]) => {
            dados
                .map(dado => new Negociacao(new Date(), dado.vezes, dado.montante)) //mapeia os dados da Negociação com base no JSON importado, colocando a data atual e os atributos vezes e quantidade.
                .forEach(negociacao => this._negociacoes.adiciona(negociacao)); //adiciona a negociação ao array de negociações
            this._negociacoesView.update(this._negociacoes); // insere o array de negociações atualizando a View do mesmo
        })
        .catch(err => console.log(err.message)); //mostra a mensagem de erro.       
}

5 respostas
solução!

Fala ai Mauricio, tudo bem? Vamos lá:

não entendi o que é Response. Seria o tipo resposta ou algo assim? Mas aí como ele é exatamente?

O Response é uma interface TypeScript para mapear os retornos de requisições feita com a `Fetch API.

O ok testa se há algum erro, é isso?

Exatamente, é isso ai.

retorna res se não houver erros

Isso mesmo

arrow function com o res que seria a resposta

Isso mesmo

resposta JSON

Isso, o json vai pegar a resposta e converter para um objeto JSON em JavaScript.

mapeia os dados da Negociação com base no JSON importado, colocando a data atual e os atributos vezes e quantidade.

Isso, vai pegar o JSON puro e transformar em objetos referentes a classe Negociacao.

adiciona a negociação ao array de negociações

Exatamente.

insere o array de negociações atualizando a View do mesmo

É isso ai

mostra a mensagem de erro.

Isso mesmo, caso ocorre algum erro durante o processo, vai cair no catch e irá exibir a mensagem na tela.

Espero ter ajudado.

Obrigado, ajudou. Queria saber mais sobre o Promise, o que pode me dizer sobre ele em detalhes?

Fala Mauricio, dá uma olhada nesse artigo:

Espero ter ajudado.

Nossa! Muito bom esse artigo. Explica tudo direitinho. Obrigado.

Magina Mauricio, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.