javascript - Rxjs - 重置 distinctuntilchanged

标签 javascript rxjs rxjs5

情况

我想知道是否可以重置 distinctUntilChanged 部分 以便它重新接受重复的值。

所以我的情况是,现在我正在使用这样的函数(作为示例大大缩短)。

    Rx.Observable.fromEvent(textInput, 'keyup')
      .pluck('target','value')
      .filter( (text) => {
          text = text.trim();
          if (!text.length) // empty input field
          {
              this.setState({ list: [] });
          }
          return text.length > 0;
      })
      .debounceTime(300)
      .distinctUntilChanged()

所以在最后,结果创建了一系列我可以点击的 div,然后更改输入的值(调用下面的函数)。

fill_name(name)
{
  $("#company_input").val(name);
  this.setState({ list: [] });
} 

因此,如果我在输入中键入 a,然后我用退格键将其全部删除并重新键入 a,可观察对象将不会调用我的函数。

我想要什么

我想要一些方法让 fill_name 函数重置 distinctUntilChanged 部分,这样我就可以在点击生成的 div 后再次搜索 a .

最佳答案

假设您有一个 generatedDivClicks$ 的 Observable:

const reset$ = generatedDivClicks$.mapTo('reset');

const input$ = Rx.Observable.fromEvent(textInput, 'keyup')
  .pluck('target','value')
  .filter( (text) => {
      text = text.trim();
      if (!text.length) // empty input field
      {
          this.setState({ list: [] });
      }
      return text.length > 0;
  })
  .debounceTime(300);

Rx.Observable.merge(reset$, input$)
    .distinctUntilChanged()
    .filter(x => x !== 'reset')

关于javascript - Rxjs - 重置 distinctuntilchanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44752525/

相关文章:

javascript - 三元运算符多个语句

javascript - 基于按钮点击的动态页面更改 - React

javascript - 如何在javascript中计算字符串中包含的数字?

javascript - 自动折叠可折叠 block

Javascript rxjs 处理每个第 n 个错误

javascript - 从外部访问源 observable Rx.Observable.prototype

javascript - 如何拆分和合并 RxJS 发出的数组值?

angular - 如何使用最大并行请求数发送 1000 个 XHTTP 请求

rxjs - 如何从最后一项开始以相反的方向从数组中发出值?

angular - 使用 RxJS 刷新/重新加载 Hot Observable 序列