Pelo que me parece estão sendo usadas duas connections para acessar o banco: connection e minhaConnection. O código ao qual me refiro pode ser visto aqui, como copiei do projeto baixado:
var connection;
var openRequest = window.indexedDB.open('aluraframe', 1);
openRequest.onupgradeneeded = e => {
console.log('Cria ou altera um banco já existente');
let minhaConnection = e.target.result;
if(minhaConnection.objectStoreNames.contains('negociacoes')) {
minhaConnection.deleteObjectStore('negociacoes');
}
minhaConnection.createObjectStore('negociacoes', { autoIncrement: true});
};
openRequest.onsuccess = e => {
console.log('Conexão obtida com sucesso');
connection = e.target.result;
};
Não compreendi porque foi usado minhaConnection dentro do onupgradeneeded e connection dentro do onsuccess. Testei o código sem esse detalhe e funcionou do mesmo jeito:
var connection;
var openRequest = window.indexedDB.open('aluraframe', 1);
openRequest.onupgradeneeded = e => {
console.log('Cria ou altera um banco já existente');
connection = e.target.result;
if(connection.objectStoreNames.contains('negociacoes')) {
connection.deleteObjectStore('negociacoes');
}
connection.createObjectStore('negociacoes', { autoIncrement: true});
};
openRequest.onsuccess = e => {
console.log('Conexão obtida com sucesso');
connection = e.target.result;
};
Alguém poderia me esclarecer porque foi feito dessa forma e quais seriam as vantagens de cada um desses approaches?
Obrigado.