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

Mas de onde veio a variável store ?

Não entendi muito bem de onde veio a variável store nesse código. Não seria :

for (let store of stores) { if(transactionalConn.objectStoreNames.contains(store)) transactionalConn.deleteObjectStore(store); transactionalConn.createObjectStore(store, { autoIncrement: true }); }

5 respostas

A variável é criada no loop for...of:

for (let store of stores) {

Você pode definir o nome que desejar.

Então, foi como eu havia suspeitado - o enunciado do exercício está com a expressão errada:

for (let [key, value] of stores) {

quando deveria ser

for (let store of stores) {

No meio do loop observe que se usa a variável loop como se tivesse sido usada a primeira expressão.

Olá, o exercício não esta errado, a resposta que lhe dei foi para o código que você colou que aliás, nem existe no exercício.

No exercício esta assim:

for (let [key, value] of stores)

Ele testa se o aluno consegue entender a intenção do código. Por isso é dito no exercício:

Por mais que seja um código que não foi abordado neste curso, o programador deve ser capaz de compreender o que ele faz.

Olhando o código como um todo a ideia é que o aluno consiga entender o que ele faz, não pela sintaxe diferente utilizada, mas pelos nomes das funções e métodos utilizados.

Ahhhhhh! Agora eu vi, esta com problema sim. A variável store. Vou alterar e me diz o que achou.

solução!

Prontinho! Ficou assim:

for (let [key, value] of stores) {
    if(transactionalConn.objectStoreNames.contains(value)) 
        transactionalConn.deleteObjectStore(value);
    transactionalConn.createObjectStore(value, { autoIncrement: true });
}

O código referencia stores, mas internamente usa value. Agora, por mais que tenha sido uma estrutura que não ensinei no curso, ela esta coerente agora!

Obrigado por ajudar a deixar o treinamento melhor do que já é!