1
resposta

cursor.continue() ou atual.continue() ?

Tanto o vídeo como a resposta do exercício concordam que para o cursor apontar para um novo dado deve-se digitar o código atual.continue(), sendo atual = e.target.result.A explicação abaixo do exercício diz que * ...(para) acessarmos um elemento do ponteiro, precisamos chamar cursor.continue()para que o ponteiro avance para o próximo elemento*. A dúvida é se cursor.continue() = atual.continue() ou houve alguma má interpretação da explicação do exercício?

Código citado:

let cursor = store.openCursor();

    cursor.onsuccess = e => {

    let atual = e.target.result;

    if(atual) {

        let dado = atual.value;

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

        atual.continue();

    } else { 

        console.log(negociacoesDaStore);
    }
};
1 resposta

Fala ai Vitor, tudo bem? Na verdade ouve uma confusão no nome das variáveis, isso porque o retorno da função openCursor vai retornar um IDBRequestque você poderia chamá-lo de request por exemplo.

Agora o event.target.result retorna um cursor então poderia trocar a variável atual para cursor.

Para mais informações: https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/openCursor

Esse link da MDN explica muito bem e dá alguns exemplos.

Espero ter ajudado.