2
respostas

Por que não instanciamos uma classe Promisse?

Em importaNegociacoes() {...}

Não instanciamos uma classe como:

let promisse = new Promisse(...);

E sim:

Promise.all(
        service.obterNegociacoesDaSemana(),
        service.obterNegociacoesDaSemanaAnterior(),
        service.obterNegociacoesDaSemanaRetrasada()
    ).then(negociacoes => {
        console.log(negociacoes)
    })
    .catch(erro => this._mensagem.texto = erro);   

Por qual motivo?

2 respostas

Fala aí Cássio, tudo bem? O all trata-se de uma função estática da classe Promise, por isso não é necessário instanciá-la para usar a função.

Uma vez que métodos/função estática pertence a classe e não ao objeto.

Espero ter ajudado.

Entendi em partes.

O mesmo vale para os métodos then() / cath() ? Pois utilizamos estes dois métodos no exemplo que eu passei acima. Ainda assim não instanciamos a Promisse().

Já na atividade 6 do mesmo capítulo, o instrutor utiliza apenas o método then() e neste exemplo ele cria uma instancia de Promisse(), segue:

<!-- dissecando-uma-promise.html -->
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Dissecando uma promise</title>
</head>
<body>
    <script>

        let promise = new Promise((resolve, reject) => {
            setTimeout(() => resolve('PROMISE RESOLVIDA'), 5000);
        });

        promise.then(resultado => console.log(resultado));
    </script>
</body>
</html>

Eu entendi que não é necessário instancia-la, minha dúvida é: Por que se faz necessário instancia-la em um(ns) caso(s) e em outro(s) não?