当前位置:  开发笔记 > 编程语言 > 正文

通过改造和rxjava 2.x处理空响应

如何解决《通过改造和rxjava2.x处理空响应》经验,为你挑选了2个好方法。

当使用rxjava 1.xi用于返回Observable处理来自改造的空响应时:

@POST( "login" )
Observable getToken( @Header( "Authorization" ) String authorization,
                                       @Header( "username" ) String username,
                                       @Header( "password" ) String password );

但是因为rxjava 2.x不会发出任何东西,Void是否有任何好的做法来处理那些空的响应?



1> Maksim Ostro..:

Completable是为这种情况设计的.它自 RxJava 1.1.1 起可用.来自官方文档:

表示没有任何值的延迟计算,但仅表示完成或异常.该类遵循与Reactive-Streams类似的事件模式:onSubscribe(onError | onComplete)?

所以只需更改方法的返回类型:

@POST("login")
Completable getToken(@Header("Authorization") String authorization,
                     @Header("username")      String username,
                     @Header("password")      String password);

并重写您的订阅者,例如:

apiManager.getToken(auth, name, pass)
    ...
    .subscribe(() -> {
        //success
    }, exception -> {
        //error
    });



2> Leo Droidcod..:

另一个解决方案是:

@POST("login")
Observable> getToken( @Header( "Authorization" ) String authorization,
                                       @Header( "username" ) String username,
                                       @Header( "password" ) String password );

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有