2017-10-13 3 views
1

간단한 질문이 있습니다. 데이터베이스 제공자 클래스의 private 멤버 변수에 열린 데이터베이스를 가지고 있거나 데이터베이스가 쿼리 될 때마다 create을 호출하는 것이 Ionic 3에서 더 좋을까요?이온 3 SQLite - 개인 회원 변수로 데이터베이스 대 모든 쿼리에서 새 데이터베이스를 만드는가?

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

나는, 첫 번째 방법에 문제가 보여요.

답변

0

예, 이것은 Promise이므로 항상 2nd 옵션을 사용해야합니다. 그러면 문제가 없습니다. 즉, 약속을 해결 한 후에 쿼리를 실행해야합니다. 항상 패턴 아래

따라

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