1
resposta

listaTodos is not a Function. Como resolver?

NegociacaoController.js:23 Uncaught (in promise) TypeError: (intermediate value).then is not a function at NegociacaoController.js:23

Código da Função abaixo

listaTodos(){

    return new Promise((resolve, reject) => {

        let cursor = this._connection
        .transaction([this._store], 'readwrite')
        .objectStore(this._store)
        .openCursor();

        let negociacoesDaStore = [];

        cursor.onsuccess = event => {

            let atual = event.target.result;

            if(atual){

                let dado = atual.value;

                negociacoesDaStore.push(new Negociacao(dado._data, dado._quantidade, dado._valor));

                atual.continue();
            }else{
                indexDB
                resolve(negociacoesDaStore);
            }
        }

        cursor.onerror = event => {

            console.log(event.target.error);
            reject('Não foi possivel listar as negociações');
        }
    });
}

//Código dentro do constructor do NegociacaoController;

ConnectionFactory

        ConnectionFactory.getConnection()
        .then(connection => new NegociacaoDao(connection)
        .then(dao => dao.listaTodos())
        .then(negociacoes => 
            negociacoes.forEach(negociacao => 
                this._listaNegociacoes.adiciona(negociacao))));
1 resposta

Fala ai Anthony, tudo bem? O problema está na segunda linha do ConnectionFactory, no caso:

.then(connection => new NegociacaoDao(connection)

Repare que falta você fechar um parenteses do then:

.then(connection => new NegociacaoDao(connection))

Espero ter ajudado.