Ionic 3 SQLite - 数据库作为私有成员变量,而不是在每个查询上创建一个新数据库



我有一个简单的问题 - 在 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, {});
  });
}

最新更新