我创建了在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();
}
但没有值返回
答案 0 :(得分:1)
您必须发布包含数据的事件,并在等待数据的位置聆听您的事件。
由于:
this.sqlite.create({ name: 'data.db', location: 'default' }) .then()
异步调用和dosnt返回值。你应该这样做:
this.events.publish('getData', dataRows);
在你想要的地方听事件:
events.subscribe('getData', (data) => {
//Do somethings
});