有条件的distingtUntilChanged在角度2

时间:2019-04-04 03:48:44

标签: angular rxjs

我有一个过滤器类,可以在任何需要过滤器功能的地方继承。

export class FilterUtil{
…
  public extFilterSubject = new Subject<any>();
  constructor(){
    this.extFilterSubject
      .pipe(map(event => event)
        , debounceTime(300)
        , distinctUntilChanged())
      .subscribe((searchKeyword) => {
         //filter logic here.
      })
   }
}

这有效。

我要完成的事情是有条件地应用distinctUntilUnchanged。 我遇到了一种情况,我不想使用distinctUntilUnchanged运算符。

我调查了official docs for distinctUntilUnchanged。但是我找不到任何相关的东西。

谢谢。

1 个答案:

答案 0 :(得分:2)

它只能将当前值与最后发出的值进行比较。 如果您想应用自己的条件。

distinctUntilChanged((valueOne: any, valueTwo: any) => {
            if (Your Condition) {
                return true; // This means values are equal, it will not emit the current value
            } else {
                return false;// This means the values are different, so it will emit
            }
        })