Я хочу сделать что-то в асинхронном режиме с индексированнымdb и я терпеть неудачу. У вас есть идея по моей проблеме?Asynchronous indexeddb
Код:
function test(basekey) {
window.indexedDB.deleteDatabase("base");
var lConnection = window.indexedDB.open("base", 1);
lConnection.onsuccess = function (event) {
var lDB = event.target.result;
var lTransactionGlobal = lDB.transaction(['person'], 'readwrite');
var lTransactionTable = lTransactionGlobal.objectStore('person');
var lRequest = lTransactionTable.add({key: basekey+1, name:"me"});
lRequest.onsuccess = function (e) {
window.setTimeout(function() {
console.log("Second wrote");
lRequest = lTransactionTable.add({key: basekey+2, name:"you"});
lRequest.onsuccess = function() {
lDB.close();
};
lRequest.onerror = function() {
console.error("Request 2 failed");
};
}, 0);
};
lRequest.onerror = function() {
console.error("Request 1 failed");
};
};
lConnection.onblocked = function() { console.log("Blocked"); };
lConnection.onerror = function() { console.log("Error"); };
lConnection.onupgradeneeded = function (pEvent) {
var db = pEvent.target.result;
var objectStore = db.createObjectStore("person", { keyPath: "key" });
};
}
Когда я называю тест (0) Я эту ошибку для второго "добавить":
Uncaught TransactionInactiveError: Failed to execute 'add' on 'IDBObjectStore': The transaction has finished.
Я попытался с Firefox и Chrome.
Я боялся этого ответа ... Хорошо, спасибо за ваше подтверждение :( – Chklang