javascript - Ionic 3 Sqlite 返回空值

标签 javascript sqlite ionic-framework ionic3

我试图在 Ionic 3 中读取我的 Sqlite 数据库,但返回的值始终为 null。如果我在该方法中 console.log(data.rows.item(0).token) ,那么它会将正确的值记录到控制台,但不会将正确的值返回给调用代码。

这是我用来获取 token 的方法:

getToken() {
    //Open database
    this.openCreateDatabase()
      .then((db: SQLiteObject) => {
        //Execute select
        db.executeSql("SELECT token FROM Token WHERE id = 1", [])
          .then((data) => {
            //Get and return the token
            return data.rows.item(0).token;
          })
          .catch((e) => {
            //Log any errors
            console.log(JSON.stringify(e));
            return null;
          })
      });
  }

调用代码很简单:

ionViewDidEnter(){
  console.log(this.sql.getToken());
}

最佳答案

For getting token you need to make getToken as Promise.

openCreateDatabase之前添加return;

getToken() {
    //Open database
    //
    return this.openCreateDatabase()
      .then((db: SQLiteObject) => {
        //Execute select
        db.executeSql("SELECT token FROM Token WHERE id = 1", [])
          .then((data) => {
            //Get and return the token
            return data.rows.item(0).token;
          })
          .catch((e) => {
            //Log any errors
            console.log(JSON.stringify(e));
            return null;
          })
      });
  }

ionViewDidEnter 更改为:

1.async等待

async ionViewDidEnter(){
 let token = await this.sql.getToken();
  console.log(token);
}

<强>2。或者然后

ionViewDidEnter(){
     this.sql.getToken().then(token => {
console.log(token)
     })
    .....
    }

关于javascript - Ionic 3 Sqlite 返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54194367/

相关文章:

javascript - 如何通过类名获取兄弟元素,然后仅使用 Javascript 隐藏它?

javascript - 查询框架内的选择器

python - sqlite3 数据库被锁定

ios - 在 iphone 上替换/加载数据库

javascript - $http AngularJS 之后数据范围不更新

css - 更改 ionic2 中菜单切换的颜色

cordova - 构建失败,无法读取未定义的属性 'reject'

javascript - 复数在 Sequelize 中如何工作?

javascript - 在对象中找不到空数组值

android - MVP 演示器中的上下文相关问题