我如何让distinctUntilChanged
使用像这样的对象
myObs = Observable.from([{foo: 'bar'}, {foo: 'bar'}]);
myObs.distinctUntilChanged()
.subscribe(value => {
// I only want to receive {foo: 'bar'} once
});
答案 0 :(得分:4)
您需要在distinctUntilChanged
内传递一个返回布尔值的函数,以确保对象是相同的。
实施例
myObs. distinctUntilChanged((a, b) => a.foo === b.foo)
答案 1 :(得分:0)
distinctUntilChanged
采用函数比较器参数,因为默认情况下使用===
相等进行比较(对于不同的对象引用,它总是不同的):
// compare by .foo which is a primitive
myObs.distinctUntilChanged((x,y) => y.foo === x.foo)
.subscribe(value => {
// receive {foo: 'bar'} once
});