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, {});
  });
}