比赛可观察但仍需订阅

时间:2019-03-04 18:47:33

标签: reactjs rxjs6

我目前在我的应用程序中添加了一个用户友好的搜索栏,但我一直坚持让搜索栏使用rxjs来分派操作以实际发出ajax请求。

用户可以通过3种方式发起搜索请求:

  1. 使用去抖时间为2000键入(单独运行即可)
  2. 键入后按Enter键(单独运行即可)
  3. 单击按钮(单独运行即可)

但是,如果用户在键入后快速按下“ Enter”键,而防抖动计时器仍在滴答作响,那么可观察到的防抖动功​​能仍会发出它的值,如果用户在键入后立即单击搜索按钮,也可以说相同。 / p>

我已经尝试了“比赛”和“合并”。种族只订阅第一个可观察到的发射,而与“ distinctUntilChanged”合并则可以,但它不会让我触发相同的搜索两次,这很重要。

任何帮助将不胜感激。

我已经创建了一个代码框:https://codesandbox.io/s/q3xpo2v1z6?fontsize=14

0 个答案:

没有答案