Rxjs结合了2个Observable,Angular 2

Nik*_*Nik 3 rxjs angular

我有2个observable,两个http调用:

itemList$:Observable<any[]>;
newItem$:Observable<any[]>;

ngOnInit(){
  itemList$ = this.http.getList(...some url...) // returns array of many items
}

createNewItem(){
  newItem$ = this.http.createNewItem(...some url...) //returns array of one item
}
Run Code Online (Sandbox Code Playgroud)

我想从其他地方调用'createNewItem()'函数,我希望将结果与当前的itemList $ observable结果合并,形成一个项目数组.

在html中我有一个监听itemList $的异步管道:

<div *ngFor="let item of itemList$ | async">{{item.name}}</div>
Run Code Online (Sandbox Code Playgroud)

如何将newItem $合并到itemList $并让异步管道显示合并结果?

muz*_*urB 7

你可以使用Observable.merge(我有RxJS版本5.0.1)

Observable.merge(newItem$, itemList$)
          .subscribe(response => {
              // Perform your action
          });
Run Code Online (Sandbox Code Playgroud)

https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/merge.md