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

Uncaught(in promise)

Olá, pessoal! Na hora de imprimir a connection, aparece o modelo, porém ele vem em formato de erro segundo a descrição que fiz no título. Por que isso acontece? Segue o código abaixo:

var ConnectionFactory = (function() {

    var stores = ['negociacoes'];
    var version = 5;
    var dbName = 'aluraframe';
    var connection = null;

    return class ConnectionFactory {
        constructor() {
            throw new Error ('Não é possível criar uma instância de ConnectionFactory');
        }

        static getConnection() {
            return new Promise((reject, resolve) => {
                let openRequest = window.indexedDB.open(dbName, version);

                openRequest.onupgradeneeded = e => {

                    this._createConnection(e.target.result);

                };

                openRequest.onsuccess = e => {

                    if(!connection)
                    connection = e.target.result;

                    resolve(connection);

                };

                openRequest.onerror = e => {

                    console.log(e.target.error);

                    reject(e.target.error.name);

                };
            });
        }

        static _createConnection(connection) {
            stores.forEach(store => {
                if(connection.objectStoreNames.contains(store))

                connection.deleteObjectStore(store);

                connection.createObjectStore(store, { autoincrement: true });

            });
        };
    };

})();

Mensagens que aparecem na impressão do console:

Promise(pending) Uncaught(in promise)

11 respostas

Fala ai Arthur, tudo bem? Provavelmente tem alguma Promise sua dando erro, porém, você não está tratando isso, isso porque o código deve estar chamando a Promise e usando apenas o then, sem tratar os possíveis erros com o catch.

Espero ter ajudado.

Obrigado, Matheus! Alguma sugestão de como resolver?

Fala Arthur, nesse caso precisaria entender qual Promise está dando erro sem tratamento.

Se quiser, compartilha o projeto completo, assim eu consigo simular o problema por aqui e analisá-lo com mais calma.

Pode compartilhar através do Github ou Google Drive (zipado).

Fico no aguardo.

Oi, Matheus! Peço desculpas por toda a demora! A pasta do git está aqui: https://github.com/arth-val/AluraFrame

Fiquei tentando resolver o problema nestes últimos dias, mas sem sucesso. Espero que você consiga para que eu possa destravar! Muito obrigado desde já!

Fala ai Arthur, eu testei o projeto aqui e não tem esse erro da Promise, talvez eu não tenha conseguido simular o cenário.

Pode me dizer quando e como faço para o erro aparecer?

Eu criei várias negociações e deletei elas também.

Só não testei a parte de importação pois não tenho a API para usar.

Espero ter ajudado.

Fala, Matheus! Cara.. eu não subi a pasta server que veio pronta desde o início do projeto. Por isso fiquei pensando que talvez a questão seja no servidor... é possível? Subo o server tb pra vc poder testar?

O erro aparece no teste do console.. quabdo chamo a função ConnectionFactory.getConnection().then(connection => console.log(connection));

E depois de novo, quando uso a função 'adiciona', com os parametros do tipo de negociação, conforme demonstrado no video, mas daí já acontece de não adicionar nenhuma negociação nova

Fala Arthur, estranho, aqui eu consegui adicionar, limpar, tudo funcionou certinho, só não testei as importações.

Qual navegador você está usando e qual versão?

Fico no aguardo.

Estou usando o Google Chrome 83.0.4103.97, mas tb testei o Firefox na versão 77.0.1

solução!

Oi, Matheus! Cara, eu percebi que no ConnectionFactory os parâmetros de reject e resolve tavam invertidos. Quando coloquei na ordem padrão, o erro parou de acontecer. Agora apareceu outro no método add que não tá me deixando adicionar novas negociações por conta da ausência de uma key. Vou dar uma investigada aqui, mas agradeço demais a atenção! Abraços

Fala Arthur, boa, fico feliz que tenha resolvido o problema.

Só acho estranho não ter acontecido aqui, será que me passou a mesma versão?

De qualquer maneira, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.