刚刚通过Dexie.js打开indexedDB后如何得到table?
How to get table after indexedDB was just openned via Dexie.js?
我需要检查一些 table 在打开后是否已经存在于 IndexedDB 中。但是我不知道如何在 'then' 语句中获取 DexieDB 对象。
this.db = new Dexie("DBNAME");
if (!this.db.isOpen()) {
this.db.open().then(function () {
//how to get this.db.table(storeName) here?
}).catch(function (error) {
console.log(error)
});
}
所以 this.db
不存在于 'then' 语句中。如何获得?
在德谢
特别是在 Dexie 中,您不必像那样调用 isOpen
和 open()
,您只需 .open
,事情就会像这样工作:
// Declare db instance
var db = new Dexie("MyDatabase");
// Define Database Schema
//...
// Open Database
db.open();
db.trasnaction(...
一般
这是一个经典的 JS 上下文值。 this
在 JavaScript 中的工作方式不同 - here is the canonical reference about it which you should read.
此外 - 关于在 then 链中传递参数,您应该参考 ,其中涵盖了更通用的方法
那里描述的解决方法(带上下文)通常适用并包含更多库特定代码,可以在此处为您提供帮助。
我需要检查一些 table 在打开后是否已经存在于 IndexedDB 中。但是我不知道如何在 'then' 语句中获取 DexieDB 对象。
this.db = new Dexie("DBNAME");
if (!this.db.isOpen()) {
this.db.open().then(function () {
//how to get this.db.table(storeName) here?
}).catch(function (error) {
console.log(error)
});
}
所以 this.db
不存在于 'then' 语句中。如何获得?
在德谢
特别是在 Dexie 中,您不必像那样调用 isOpen
和 open()
,您只需 .open
,事情就会像这样工作:
// Declare db instance
var db = new Dexie("MyDatabase");
// Define Database Schema
//...
// Open Database
db.open();
db.trasnaction(...
一般
这是一个经典的 JS 上下文值。 this
在 JavaScript 中的工作方式不同 - here is the canonical reference about it which you should read.
此外 - 关于在 then 链中传递参数,您应该参考
那里描述的解决方法(带上下文)通常适用并包含更多库特定代码,可以在此处为您提供帮助。