我有两个可观察到的,两个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$可观察结果合并成一个条目数组。
在html中,我有一个听itemList$的异步管道:
<div *ngFor="let item of itemList$ | async">{{item.name}}</div>如何将newItem$合并到itemList$并让异步管道显示合并的结果?
发布于 2017-02-03 19:59:12
您可以使用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
发布于 2017-02-03 18:44:33
您可以使用Subject而不是Observable,一旦您创建了一个新项,就将它交给主题并发出它。
itemList$:AsyncSubjct<any>;
createNewItem(){
this.http.createNewItem(...some url...).subscribe(data => {
this.itemList$.next(data);
}https://stackoverflow.com/questions/42030469
复制相似问题