ионный 3 sqlite не возвращаемое значение - PullRequest
0 голосов
/ 03 июня 2018

Я создаю провайдера для вставки, выбора, удаления, обновления данных в 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);
            });


       })
}

и этот мой код в списке.ts для получения данных

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

}

, но значения не возвращаются

1 Ответ

0 голосов
/ 03 июня 2018

Вы должны опубликовать событие с вашими данными и прослушать событие там, где вы ожидаете данных.

Потому что:

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

Является асинхронным вызовом и не возвращает возвращаемое значение.Вы должны сделать так:

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

И прослушать событие там, где вы хотите:

events.subscribe('getData', (data) => {
 //Do somethings
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...