有一类 IndexedDb
class IndexedDb {
constructor() {
var self = this;
var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB;
if (!indexedDB) {
return;
}
var open = indexedDB.open(db, 2);
open.onupgradeneeded = function() {
...
};
open.onerror = function(event) {
...
};
open.onsuccess = function(event) {
debugger;
console.log("onsuccess")
...
}
}
}
if(!Indexeddb) {
var Indexeddb = new IndexedDb();
}
export default Indexeddb;
问题是 open.onsuccess 不起作用。如果您从控制台运行代码,那么一切正常
var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB;
var open = indexedDB.open(db, 2);
debugger;
open.onsuccess = function (event) {
debugger;
console.log("onsuccess");
self.db = event.target.result;
};
这种行为可能有什么问题?
问题原来是我在删除数据库。删除数据库后,您必须关闭 chrome 中的选项卡。只有在那之后你才能再次创建一个数据库并且 onsuccess 将再次工作。删除数据库后不能更改版本。