angular - Rxjs 结合了 2 个可观察对象,Angular 2

标签 angular rxjs

我有 2 个 observables,都是 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$ 并让异步管道显示合并结果?

最佳答案

您可以使用 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

关于angular - Rxjs 结合了 2 个可观察对象,Angular 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42030469/

相关文章:

angular - fxFlex 不调整元素大小

javascript - Redux - Ngrx Action 调度异步处理

javascript - 无法在vue中导入Observable

javascript - Angular - 如何防止 RxJs fromEvent 中的 XSS 攻击?

angular - RxJS forkJoin 的 http 请求被 chrome 取消

angular - 如何为 Mat-table 创建一个 Expand All Button 以便它在 Angular 8 中展开表格中的每一行?

node.js - 更好的一对一和群聊方法 nodejs Socket.io

unit-testing - Angular 2——模拟——没有 HTTP 提供者

angular - 如何在 queryParams 更改时重新运行解析器

rxjs - RXJS 库中 Observable.of 运算符的目的是什么?