我目前在我的应用程序中添加了一个用户友好的搜索栏,但我一直坚持让搜索栏使用rxjs来分派操作以实际发出ajax请求。
用户可以通过3种方式发起搜索请求:
但是,如果用户在键入后快速按下“ Enter”键,而防抖动计时器仍在滴答作响,那么可观察到的防抖动功能仍会发出它的值,如果用户在键入后立即单击搜索按钮,也可以说相同。 / p>
我已经尝试了“比赛”和“合并”。种族只订阅第一个可观察到的发射,而与“ distinctUntilChanged”合并则可以,但它不会让我触发相同的搜索两次,这很重要。
任何帮助将不胜感激。
我已经创建了一个代码框:https://codesandbox.io/s/q3xpo2v1z6?fontsize=14