Olá, tenho uma page Home de carros e um provider, que faz a busca no indexedDb pelos carros. Fiz do jeito como foi mostrdao na aula, porém na minha home.ts, o retorno da promise é undefined.
carro-home.ts
import { CarroProvider } from './../../providers/carro/carro';
import { CadastroCarroPage } from './../cadastro-carro/cadastro-carro';
import { Combustivel } from './../../models/Combustivel';
import { Carro } from './../../models/Carro';
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
@IonicPage()
@Component({
selector: 'page-carro-home',
templateUrl: 'carro-home.html',
})
export class CarroHomePage
{
public carroList: Carro[] = [];
constructor(public navCtrl: NavController, public navParams: NavParams, private _carroProvider: CarroProvider)
{}
ionViewDidLoad()
{
this._carroProvider.listAll()
.subscribe(
(carros: Carro[]) =>
{
console.log(carros);
},
(err) => {
console.log('erro');
console.log(err);
}
);
}
}
meu provider
import { Carro } from './../../models/Carro';
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Storage } from '@ionic/storage';
import { DatePipe } from '@angular/common';
import { Observable } from 'rxjs/Observable';
@Injectable()
export class CarroProvider
{
constructor(private _storage: Storage, private _datepipe: DatePipe) {}
public listAll()
{
let carros: Carro[] = [];
let promise = this._storage.forEach(
(carro: Carro) => {
// let currentKey = key.substr(0, 5);
// if (currentKey == 'carro')
carros.push(carro);
}
)
.then(
() => { carros; }
);
return Observable.fromPromise(promise);
}
}
O console log printa undefined. No meu provider, o array está corretamente populado. Creio que o problema esteja no retorno do provider para a page