我有一个离子3应用程序,我从多个用户那里获得数据,我想创建一个页面,在那里用户可以看到自己的项目,他添加到网站,我唯一的标识符是电子邮件。
服务
getMyAds(page, email): Observable<any[]> {
return this.http.get(this.api_url + page)
.flatMap((ads: any[]) => {
if (ads.length > 0) {
return Observable.forkJoin(
ads.map((ad: any) => {
if (ad.email == email) { --> this is causing the problem
return this.http.get(this.ads_thumb_url + ad.id)
.map((res: any) => {
let media: any = res;
ad.media = media;
return ad;
});
}
})
);
}
return Observable.of([]);
});
}
page.ts
constructor(public navCtrl: NavController, public navParams: NavParams, public renderer: Renderer, public zone: NgZone, public adsProvider: AdsProvider) {
if (localStorage.getItem('wpIonicToken')) {
this.localstorageString = localStorage.getItem('wpIonicToken');
this.user = JSON.parse(this.localstorageString);
this.loadAds();
}
}
loadAds(infiniteScroll?) {
this.adsProvider.getMyAds(this.page, this.user.user_email).subscribe((data: any) => {
this.items = this.items.concat(data);
if (infiniteScroll) {
infiniteScroll.complete();
}
});
}
我收到的电子邮件来自
localStorage
把它传给
getMyAds()
RunTime Error: You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable
我想我可以用RXJS来解决,而不是
if ..
但我不擅长RXJS。
我从中过滤
第TS页
通过检查给定电子邮件的数据,它不起作用。不管怎样,从服务中过滤的效果不是更好吗?