如果三个对象键中有一个发生了变化,我想为我的oberservable触发.subscribe()
。
如果我复制并粘贴每个键的方法,它就可以工作:
this.myService.loadData(this.dataContainer.id, true)
.distinctUntilChanged((updatedData) => { return updatedData.relations; })
.subscribe(updatedData => {
console.log("relations changed",updatedData);
});
this.myService.loadData(this.dataContainer.id, true)
.distinctUntilChanged((updatedData) => { return updatedData.parent; })
.subscribe(updatedData => {
console.log("parent changed",updatedData);
});
this.myService.loadData(this.dataContainer.id, true)
.distinctUntilChanged((updatedData) => { return updatedData.children; })
.subscribe(updatedData => {
console.log("children changed",updatedData);
});
如果我设置distinctUntilChanged
比较器返回整个updatedData
对象,我的订阅永远不会触发。
如何将三个dinstinctUntilChanged
组合成一个减速器?
4条答案
按热度按时间w1e3prcc1#
最后我做了:
qyzbxkaa2#
一种方法:
k97glaaz3#
另一个选择可能是返回选择器中的所有数据,并在比较函数中比较不同的属性:
5cnsuln74#
还有一种方法来自lodash:(x一个月一个月+x一个月一个月一个月)