Rxjs`distinctUntilChanged()`似乎不起作用

Rxjs`distinctUntilChanged()`似乎不起作用,rxjs,lodash,rxjs-pipeable-operators,Rxjs,Lodash,Rxjs Pipeable Operators,在rxjs流中,我使用lodash的isEqual过滤重复值。然而,它似乎并没有像预期的那样工作。以下面的代码片段为例 从“lodash es”导入{isEqual}; 让cachedValue:任意; 功能测试fn(Observable eval:可观察 我是不是弄错了/误解了操作员?我明白了!多亏了an中的一条评论:我不小心订阅了observable多次(这不应该发生)。多个console.log实例来自不同的订阅实例。感谢您不断提问John!帮助我了解如何编写自己的自定义DistinctU

在rxjs流中,我使用lodash的
isEqual
过滤重复值。然而,它似乎并没有像预期的那样工作。以下面的代码片段为例

从“lodash es”导入{isEqual};
让cachedValue:任意;
功能测试fn(Observable eval:可观察


我是不是弄错了/误解了操作员?

我明白了!多亏了an中的一条评论:我不小心订阅了observable多次(这不应该发生)。多个
console.log
实例来自不同的订阅实例。

感谢您不断提问John!帮助我了解如何编写自己的自定义DistinctUntilChanged()operatorIt对我很有用,因为我也有同样的问题。我忘了我在模板中订阅了两次。依赖
tap
来做
subscribe
应该做的事情是一个陷阱。对我很有用。我要去关注合并()我把我的特例改变了。@威尔特也许你应该考虑删除你的评论,这对其他人来说没有任何用处。
"output": false undefined [ContactList]
"output": true [ContactList] [ContactList]
"output": true [ContactList] [ContactList]
"output": true [ContactList] [ContactList]
filter(val => {
  const equal = isEqual(cachedValue, val);
  cachedValue = val;
  return !equal;
})