构造函数中的Sqlite查询正在执行两次?

时间:2017-07-24 10:42:18

标签: sqlite angular2-nativescript

我需要使用Nativescript-Sqlite插件在本地数据库中创建多个表。当我尝试时,在构造函数中编写的查询正在执行两次。我发现通过给出每个表创建代码的警报。 我该如何纠正这个问题?



constructor(private page: Page, private userService: UserService) {
    this.user = new User();

   (new Sqlite("my.db")).then(db => {
         database = db;
          db.execSQL("CREATE TABLE IF NOT EXISTS people1 (id INTEGER PRIMARY KEY AUTOINCREMENT, firstname TEXT, lastname TEXT)").then(id => {
                  alert("table1 insertd");              }, error => {
                console.log("CREATE TABLES ERROR", error);
            });

            db.execSQL("CREATE TABLE IF NOT EXISTS people2 (id INTEGER PRIMARY KEY AUTOINCREMENT, firstname TEXT, lastname TEXT)").then(id => {
                    alert("table2 insertd");        }, error => {
                console.log("CREATE TABLE ERROR", error);
            });


        }, error => {
            console.log("OPEN DB ERROR", error);
        });}




我的发展环境 - 带有angular2的Nativescript IDE - Visual Studio代码

- 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以在多个位置注入此组件 - 可能在应用程序生命周期的早期(也许是app.module.ts?)。我首先检查构造函数是否被调用两次。如果是,那么您的组件将被实例化两次。