如何在 Angular RxJs 中处理来自多个数据流的相同值
how to handle same value from multiple datastreams in Angular RxJs
我有两个不同的数据流,它们为同一对象提供修改后的 属性 值。我想写一个订阅,这样每当两个 DataStream 中的任何一个通知 属性 修改时,我都可以重用相同的代码。
const selectedItems$ = this.grid.onSelect.pipe(.... this gives me the selected object);
const updatedItem$ = this.fetchData.onUpdate.pipe(.....this gives me the updated object);
displayItem$(selection$, updatedItem$) {
(..here i want to get notified whenever there is change in).subscribe(item => {
this.displayLatest(item)
})
}
selectedItem$ 和 updatedItem$ 可以 return 相同的对象在修改已选择的项目时具有不同的 属性 值。
这是我第一次研究 RxJs,对这部分有点困惑。我在 RxJS 运算符列表(如 concat、merge、combine)中进行了搜索,但大多数工作示例都针对不同的数据结构。还有其他更好的方法吗?
您可以使用 merge
创建一个从两个源流发出值的可观察对象:
import { merge } from 'rxjs';
...
merge(selection$, updatedItem$)
.subscribe(item => {
this.displayLatest(item)
})
我有两个不同的数据流,它们为同一对象提供修改后的 属性 值。我想写一个订阅,这样每当两个 DataStream 中的任何一个通知 属性 修改时,我都可以重用相同的代码。
const selectedItems$ = this.grid.onSelect.pipe(.... this gives me the selected object);
const updatedItem$ = this.fetchData.onUpdate.pipe(.....this gives me the updated object);
displayItem$(selection$, updatedItem$) {
(..here i want to get notified whenever there is change in).subscribe(item => {
this.displayLatest(item)
})
}
selectedItem$ 和 updatedItem$ 可以 return 相同的对象在修改已选择的项目时具有不同的 属性 值。
这是我第一次研究 RxJs,对这部分有点困惑。我在 RxJS 运算符列表(如 concat、merge、combine)中进行了搜索,但大多数工作示例都针对不同的数据结构。还有其他更好的方法吗?
您可以使用 merge
创建一个从两个源流发出值的可观察对象:
import { merge } from 'rxjs';
...
merge(selection$, updatedItem$)
.subscribe(item => {
this.displayLatest(item)
})