使用带有 rxandroid Completable 的自定义转换器

Posted

技术标签:

【中文标题】使用带有 rxandroid Completable 的自定义转换器【英文标题】:Using custom converter with rxandroid Completable 【发布时间】:2021-01-30 13:18:55 【问题描述】:

我在使用 rxandroid 进行改造时遇到问题。 我创建了一个自定义转换器,如下所示:

class CustomResponseConverter<T>(private val converter: Converter<ResponseBody, *>): Converter<ResponseBody, T> 

    override fun convert(value: ResponseBody): T? 
        // custom convert response here
    

当我像这样返回Single 时一切正常:

@GET("route")
fun simpleFetch(): Single<FetchData>

但是当我尝试像这样返回Completable 时:

@GET("route")
fun simpleFetch(): Completable

我发现convert 函数没有被调用。请帮忙。

提前致谢。

【问题讨论】:

【参考方案1】:

对于遇到与我相同情况的任何人,显然根据改造团队here:

使用 Completable 会绕过所有转换器,是的,并且只是关闭响应主体以使其被消耗。由于转换后的主体无处可与 Completable 一起使用,因此无需调用它并执行转换。

所以我想我们会在这个案例中继续使用Single

【讨论】:

以上是关于使用带有 rxandroid Completable 的自定义转换器的主要内容,如果未能解决你的问题,请参考以下文章

RxJava 和 RxAndroid 五(线程调度)

RxJava 和 RxAndroid 三(生命周期控制和内存优化)

使用 RxAndroid 进行调度

RxAndroid + Retrofit callTimeout 不会触发 onError

RxAndroid/java小记

RxAndroid 网络调用使应用程序滞后于后退导航