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

时间:2017-10-13 19:07:25

标签: angular sqlite typescript ionic3 ionic-native

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

我确实看到第一种方法存在问题,因为在访问数据库之前可能没有创建数据库的可能性很小。

1 个答案:

答案 0 :(得分:0)

是的,由于这是Promise,您始终需要使用2nd选项。然后您就不会遇到任何问题。这意味着您需要在解析承诺后执行查询。

始终遵循以下模式:

queryMethod() {
  this.sqlite.create(...)
  .then((db: SQLiteObject) => {
    db.executeSql(sql, {});
  });
}