Olá, durante a parte do curso em que trabalhamos na listagem dos itens do IndexedDB percebi que o loop que varria cada iteração estava sendo tradado pelo if.
Segue abaixo o código da função listaTodos(), minha dúvida se concentra no cursor.onsuccess.
listaTodos() {
return new Promise((resolve, reject) => {
let cursor = this._connection
.transaction([this._store], 'readonly')
.objectStore(this._store)
.openCursor();
let negociacoes = [];
cursor.onsuccess = e => {
let atual = e.target.result;
if(atual) {
let dado = atual.value;
let negociacao = new Negociacao(dado._data, dado._quantidade, dado._valor);
negociacoes.push(negociacao);
atual.continue();
} else {
resolve(negociacoes);
}
}
});
}
Estou bem com a parte do procedimento para iterar no cursor retornado, porém, invés de um if não deveríamos ter um while()? Como isto pode estar funcionando?