使用rxjava时如何取消慢发射

Posted

技术标签:

【中文标题】使用rxjava时如何取消慢发射【英文标题】:How to cancel slow emission when using rxjava 【发布时间】:2021-09-11 01:33:43 【问题描述】:

我在 android 上实现了搜索功能。有时会出现的问题是初始搜索请求会触发运行非常缓慢并最终返回错误的网络请求。在那个时候,用户通过在搜索栏中输入输入来触发另一个搜索,这会返回一个成功响应并将搜索结果显示给用户。

但是,当第一个耗时过长且失败的结果返回时,它会转换为一个空结果,从而破坏现有的搜索结果。 RxJava 中是否有操作符可以忽略这个耗时过长的请求?

【问题讨论】:

【参考方案1】:

我通过使用 switchMap 取消初始请求来解决此问题。在使用 flatMap 之前。

【讨论】:

以上是关于使用rxjava时如何取消慢发射的主要内容,如果未能解决你的问题,请参考以下文章

RxJava 方法备忘录

为啥我不能在 Kotlin Flow 中使用像 rxJava.Single.create 这样的发射函数?

RxJava 错误处理

Android RxJava使用介绍 RxJava的操作符

RxJava2.0中fromArray操作符用法和源码分析

如何使用RxJava管理DialogFragment?