使用rxjava时如何取消慢发射

How to cancel slow emission when using rxjava

我在 Android 上实现了搜索功能。有时出现的问题是初始搜索请求触发了运行非常缓慢的网络请求,最终 returns 出现错误。在此期间,用户通过在搜索栏中输入内容来触发另一次搜索,returns 成功响应并向用户显示搜索结果。

但是,当第一个结果耗时太长而失败时 returns,它会变成空结果,从而破坏现有的搜索结果。 RxJava 中是否有一个运算符可以忽略这个耗时过长的请求?

我通过使用 switchMap 取消初始请求解决了这个问题。在它使用 flatMap 之前。