【发布时间】:2018-05-24 01:31:11
【问题描述】:
我正在尝试使用 RxJava 和 GRPC 从错误中恢复。这是我观察到的:
Observable<Object> observable = Observable.fromCallable(() -> {
try {
Grpc.MyRequest request = Grpc.MyRequest.newBuilder()
.setToken(mToken)
.build();
Grpc.MyResponse reply = mStub.mytest(request);
return reply;
} catch (Exception e) {
///
}
}).cache();
这是订阅:
observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnError(throwable -> {
})
.subscribe((result) -> {
MyResponse res = ((MyResponse) result);
if (res.getCode()!=0) {
//Check error code and try to refresh token and repeat this request after.
}
},throwable -> {
throwable.printStackTrace();
});
因此,当我从 GRPC 服务收到错误时,根据错误代码,我想尝试通过执行另一个请求来从中恢复,然后重复原始请求。我不确定如何使用 RxJavaretrywhen。 做这样的事情最优雅的方式是什么?
【问题讨论】:
标签: android rx-java grpc grpc-java