离子3 sqlite不返回值 [英] ionic 3 sqlite not return value

查看:121
本文介绍了离子3 sqlite不返回值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I create provider to insert , select , delete , update data in sqlite

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

this my code in database.service.ts to get data

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中的代码来接收数据

and this my code in list.ts to receive the data

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

}

但没有值返回

推荐答案

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

You must publish an event with your data and listen your event in where you wait for data.

因为:

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

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

Is async call and dosnt return value. You should do like this:

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

并在您想要的地方收听活动:

And listen to event in where you want:

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

这篇关于离子3 sqlite不返回值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆