我有一个简单的问题 - 在 Ionic 3 中,将打开的数据库放在数据库提供程序类的私有成员变量中,还是每次查询数据库时调用create
更好?
即这个...
private db: SQLiteObject;
constructor() {
this.sqlite.create(...)
.then((db: SQLiteObject) => {
this.db = db;
})
}
queryMethod() {
db.executeSql(sql, {});
}
。还是这个?
constructor() {
}
queryMethod() {
this.sqlite.create(...)
.then((db: SQLiteObject) => {
db.executeSql(sql, {});
});
}
我确实看到了第一种方法的问题,因为数据库在被访问之前可能没有被创建的可能性很小。
是的,由于这是Promise
,因此您始终需要使用2nd
选项。那么你就不会有任何问题。这意味着您需要在解析承诺后执行查询。
始终遵循以下模式:
queryMethod() {
this.sqlite.create(...)
.then((db: SQLiteObject) => {
db.executeSql(sql, {});
});
}