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

connection não recebe e.target.result

Pessoal,

Com o código abaixo, consigo criar um banco, mesmo não carregando a mensagem do onsucess no console. Se vou na aba application, o banco está lá.

Porém, quando tento acessar a instância do banco na variável connection, ele dá undefined. Se chamo no console dentro de onupgradeneeded ele me retorna a instância corretamente, mas se chamo no final do código para fazer o próximo exercício, ele não assume o valor de 'e.target.result', passado dentro de onsucess.

Creio que o onsucess e onerror não estão funcionando. Já tentei criar outro banco, mas dá o mesmo erro. Alguém pode me ajudar, por favor?

Segue código:

        var connection;

        let request = window.indexedDB.open("aluraframe", 7);

        request.onupgradeneeded = e => {
            let minhaConnection = e.target.result;
            console.log('cria ou edita um banco existente');
        };

        request.onsucess = e => {
            connection = e.target.result;
            console.log('banco carregado com sucesso');
        };

        request.onerror = e => {
            console.log(e.target.error);
        };

        console.log(connection);
6 respostas

Boa tarde. Confira esse trecho:

onsucess

O correto é

onsuccess

Vira e mexe cometo o mesmo erro :)

Aguardo seu retorno para saber se está tudo certo.

Boa tarde Flávio! Prazer falar com você!

A questão do onsuccess era a escrita mesmo. Obrigado!

Porém, na última linha do código, o log de connection ainda dá undefined. Se eu faço dentro da arrow function de 'request.onsuccess' eu consigo acesso a instância do banco.

Já conferi com o exercício, e não encontro o erro. Onde estou errando?

A operação de obtenção da conexão é assíncrona por isso vai dar undefined. Mas se não em engano, eu peço que essa verificação, esse trecho de código seja executado depois da aplicação ter executado o código anterior, no caso, ser executada pelo console. Ai você terá certeza que a connection tem valor.

Em suma, remove esse teste do seu script e carregue a página. Depois de carregada, abra o console e verifique o valor da variável.

solução!

Perfeito Flávio! Deu certo! Obrigado pela ajuda!

Boa notícia! Depois desse curso digite fazer esse aqui

https://www.alura.com.br/curso-online-javascript-padroes-abordagem-funcional

É como se fosse a parte 4 do javascript.

Sucesso e bom estudo.

Legal Flávio! Obrigado pela dica! Com certeza farei!

Sucesso!