如何在 rxJava 中映射错误?
How do I map errors in rxJava?
如何转换由 rxJava 中的 Observable 编辑的错误 return?
现在我有了这个方法:
@Override
public Maybe<JsonObject> getUser(String token) {
return tokenManager.getTokenInfo(token) //returns a Single<UserInfo>
.flatMapMaybe(userInfo -> userRepo.findOne(userInfo));
}
行为是 getTokenInfo
或 findOne
传递的任何异常都会传播到此函数的 return 值的订阅者。是否可以将异常映射到其他东西?喜欢
@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()));
如何转换由 rxJava 中的 Observable 编辑的错误 return? 现在我有了这个方法:
@Override
public Maybe<JsonObject> getUser(String token) {
return tokenManager.getTokenInfo(token) //returns a Single<UserInfo>
.flatMapMaybe(userInfo -> userRepo.findOne(userInfo));
}
行为是 getTokenInfo
或 findOne
传递的任何异常都会传播到此函数的 return 值的订阅者。是否可以将异常映射到其他东西?喜欢
@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()));