我有一个简单的问题 - 在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, {});
});
}
我确实看到第一种方法存在问题,因为在访问数据库之前可能没有创建数据库的可能性很小。
答案 0 :(得分:0)
是的,由于这是Promise
,您始终需要使用2nd
选项。然后您就不会遇到任何问题。这意味着您需要在解析承诺后执行查询。
始终遵循以下模式:
queryMethod() {
this.sqlite.create(...)
.then((db: SQLiteObject) => {
db.executeSql(sql, {});
});
}