Ionic 3 SQLite - 数据库作为私有成员变量与创建每个查询的新数据库?
问题描述:
我有一个简单的问题 - 在Ionic 3中将数据库提供者类的私有成员变量中的打开数据库打开,还是在每次查询数据库时调用create
会更好?Ionic 3 SQLite - 数据库作为私有成员变量与创建每个查询的新数据库?
I.e. 这 ...
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, {});
});
}