2
respostas

Quantidade undefined

Quando recarrego a página e roda o código que lista as negociações do indexedDB a minha tabela na coluna "quantidade" lista todos os itens como undefined.

  listaTodos() {

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

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

      let negociacoes = [];

      cursor.onsuccess = e => {

        let pointer = e.target.result;

        if(pointer) {

          let dado = pointer.value;

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

          pointer.continue();

        } else {

          resolve(negociacoes);
        }

      }

      cursor.onerror = e => {

        reject('Não foi possível listar as negociações');
        console.log(e.target.error.name)
      }

    });

  }

Quando dou um log de "dado" aparece o meu objeto no console com o valor correto em "quantidade", porém se dou o log de "dado.quantidade" ele me retorna undefined.

console.log(dado);
console.log(dado._quantidade)
2 respostas

Boa noite, Luan! Como vai?

Vc poderia colar aqui o código da classe Negociacao? Assim eu poderei ter uma ideia melhor do que está acontecendo para tentar te ajudar!

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

class Negociacao {

  constructor (data, quantidade, valor) {
    this._data = new Date(data.getTime());
    this._quantiade = quantidade;
    this._valor = valor; 
    Object.freeze(this);
  }

  get volume() {
    return this._quantiade * this._valor;
  }

  get data() {
    return new Date(this._data.getTime());
  }

  get quantidade () {
    return this._quantiade;
  }

  get valor() {
    return this._valor;
  }
}

aqui está