我有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 }
我想从其他地方调用’createNewItem()’函数,我希望将结果与当前的itemList $observable结果合并,形成一个项目数组.
在html中我有一个监听itemList $的异步管道:
<div *ngFor="let item of itemList$| async">{{item.name}}</div>
如何将newItem $合并到itemList $并让异步管道显示合并结果?
解决方法
您可以使用Observable.merge(我有RxJS版本5.0.1)
Observable.merge(newItem$,itemList$) .subscribe(response => { // Perform your action });
https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/merge.md