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

clear() não funciona

Olá!

Estou na atividade "Removendo todas as negociações" porém quando uso o apagaTodos do NegociacaoDao, ele remove da view mas deleta do indexedDb. está conforme a atividade e o MDN (https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/clear) porém não deleta.

Segue meu código:

apagaTodos() {
        return new Promise((resolve, reject) => {
            let request = this._connection
                .transaction([this._store],"readwrite")
                .objectStore(this._store)
                .clear();

            request.onsuccess = e => resolve('Negociações apagadas com sucesso');

            request.onerror = e => {
                console.log(e.target.error);
                reject('Não foi possível apagar as negociações');
            };
        });
    }
apaga() {
        ConnectionFactory
            .getConnection()
            .then(connection => new NegociacaoDao(connection))
            .then(dao => dao.apagaTodos())
            .then(mensagem => {
                this._mensagem.texto = mensagem;
                this._listaNegociacoes.esvazia();
            })
            .catch(erro => this._mensagem.texto = erro);
    }

Testei tanto no Chrome quanto no firefox, ambos com o mesmo problema.

2 respostas
solução!

Bom dia.

Aqui funciona perfeito. Você omitiu boa parte do seu código. Compartilhe completo dessas classes envolvidas. Ou você pode fazer o download do projeto com essa parte pronta e testar.

Por fim, você experimentou recarregar a página para verificar se os dados foram apagados? Fica um cache de exibição no browser, recarregar garante que você esta vendo o mais atualizado.

No aguardo.

Olá Flavio,

Obrigado pela resposta, consegui achar o erro. Eu não apaguei o método antigo, tinha dois metodos com o mesmo nome sendo que o outro foi declarado por último.

Agradeço pela ajuda.