离子3 sqlite不返回值 [英] ionic 3 sqlite not return value
本文介绍了离子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屋!
查看全文