RxJS追加可观察到的打字稿观察到的数组列表(RxJS append observable to o

2019-09-30 19:20发布

如何添加Observable<News>至观察到一个数组?

newsArray: Observable<Array<any>>;

addNews(newsId: number) {
   let news = this.newsService.getNewNews(newsId); // this returns a Observable<News> type.

  //I want to add `news` to `newsArray` to display it in UI.
}

HTML:

<li *ngFor="let item of (newsArray | async)">
  <div>{{item.Id}}: {{item.DataValue}}</div>
</li>

任何其他运营商使用?

我试图BehaviourSubject但它显示在同一时间只有一个值。 我想显示补充一点,我追加到arrray项目。

Answer 1:

您可以使用扫描来积累新闻

news$:Observable<any>
loadMore$=new Subject<number>()

ngOnInit(){
 this.news$=this.loadMore$
 .switchMap((newsId)=>this.newsService.getNewNews(newsId))
 .scan((acc,curr)=>{
    acc.push(curr)
    return acc
 },[]).startWith(null)
}

addNews(newsId: number) {
  this.loadMore$.next(newsId);
}

HTML

<li *ngFor="let item of (news$ | async)">
  <div>{{item.Id}}: {{item.DataValue}}</div>
</li>


文章来源: RxJS append observable to observable array list in typescript