繁体   English   中英

如何在 rxJava 中出现 map 错误?

[英]How do I map errors in rxJava?

如何转换 rxJava 中的 Observable 返回的错误? 现在我有这个方法:


@Override
    public Maybe<JsonObject> getUser(String token) {
        return tokenManager.getTokenInfo(token)    //returns a Single<UserInfo>
            .flatMapMaybe(userInfo -> userRepo.findOne(userInfo));
    }

行为是getTokenInfofindOne传递的任何异常都会传播到此函数返回值的订阅者。 是否有可能 map 例外情况? 喜欢

@Override
    public Maybe<JsonObject> getUser(String token) {
        return tokenManager.getTokenInfo(token)
            mapError(exc -> new AuthException("invalid token"))  //don't let subscriber get raw exc
            .flatMapMaybe(userInfo -> userRepo.findOne(userInfo))
            .mapError(exc -> new NetworkException());


    }

onErrorResumeNext与所需异常的error源一起使用:

return tokenManager.getTokenInfo(token)
       .onErrorResumeNext(exc -> Single.error(new AuthException("invalid token")))
       .flatMapMaybe(userInfo -> userRepo.findOne(userInfo))
       .onErrorResumeNext(exc -> Maybe.error(new NetworkException()));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM