离子3 sqlite不返回值

时间:2018-06-03 14:51:22

标签: sqlite ionic-framework

我创建了在sqlite中插入,选择,删除,更新数据的提供程序

这是我在database.service.ts中获取数据的代码

getData(){

 return  this.sqlite.create({
        name: 'data.db',
        location: 'default'
      }) 
      .then((db: SQLiteObject) => {
         db.executeSql('select * from  downloaded order by ID', {})
         .then(res => {
            for(let i = 0;i < res.row.length; i++){
                this.data.push({
                    id: res.row.item(i).id,
                    name: res.row.item(i).name,
                    url: res.row.item(i).URL
                })
            }
            return this.data;
           }).catch(e => {
            console.log(e);
            });


       })
}

这是我在list.ts中的代码来接收数据

getData(){
this.data =  this.DB.getData();

}

但没有值返回

1 个答案:

答案 0 :(得分:1)

您必须发布包含数据的事件,并在等待数据的位置聆听您的事件。

由于:

this.sqlite.create({ name: 'data.db', location: 'default' }) .then()

异步调用和dosnt返回值。你应该这样做:

this.events.publish('getData', dataRows);

在你想要的地方听事件:

events.subscribe('getData', (data) => {
 //Do somethings
 });