Ionic 3 SQLite - 数据库作为私有成员变量与在每个查询上创建一个新数据库?
Ionic 3 SQLite - database as private member variable vs. creating a new database on every query?
我有一个简单的问题 - 在 Ionic 3 中将打开的数据库放在数据库提供程序的私有成员变量中更好 class,还是每次调用 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
option.Then 你不会有任何问题。这意味着您需要在解决承诺后执行查询。
始终遵循以下模式:
queryMethod() {
this.sqlite.create(...)
.then((db: SQLiteObject) => {
db.executeSql(sql, {});
});
}
我有一个简单的问题 - 在 Ionic 3 中将打开的数据库放在数据库提供程序的私有成员变量中更好 class,还是每次调用 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
option.Then 你不会有任何问题。这意味着您需要在解决承诺后执行查询。
始终遵循以下模式:
queryMethod() {
this.sqlite.create(...)
.then((db: SQLiteObject) => {
db.executeSql(sql, {});
});
}