Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Passando o this do controller para o service

----> no NegociacaoController:

importaNegociacoes() {
    let service = new NegociacaoService();
    service.obterNegociacoesDaSemana(this);
}

---->no negociacao service:

class NegociacaoService { 
//aqui está a dúvida:
//---------em vez de receber a CB, receberia o this do controller !!!!!!--------
// !!!!!!!!
    obterNegociacoesDaSemana(thisAnterior) {

        let xhr = new XMLHttpRequest();

        xhr.open('GET', 'negociacoes/semana');

        xhr.onreadystatechange = () => {

            if(xhr.readyState == 4) {

                if(xhr.status == 200) {

                JSON.parse(xhr.responseText)
                    .map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor)
                    .forEach(negociacao => thisAnterior._listaNegociacoes.adiciona(negociacao));
                    thisAnterior._mensagem.texto = 'Negociações importadas com sucesso.';

            } else {
                console.log(xhr.responseText);
                thisAnterior._mensagem.texto = 'Não foi possível obter as negociações.';
            }
            }
    };

    xhr.send();
    }
}

Pessoal, não daria para resolver esse problema apenas passando o this do controller para NegociacaoService, sem precisar usar callback ?

1 resposta
solução!

Se você passar o this do controller estará acoplando o serviço ao controller e não poderá utilizar o serviço em outros controller.