android - rxJava Observable 链在 onErrorResumeNext 之后停止
问题描述
我有以下可观察的链:
public Observable<Void> ApiCallBackObservable() {
return Observable.fromEmitter(new Action1<AsyncEmitter<Void>>() {
@Override
public void call(final AsyncEmitter<Void> voidAsyncEmitter) {
APICall.setCallBack(new CallBack() {
@Override
public void onResponseReceived() {
voidAsyncEmitter.onNext(null);
voidAsyncEmitter.onCompleted();
}
});
}
}, AsyncEmitter.BackpressureMode.NONE).timeout(100, TimeUnit.MILLISECONDS).onErrorResumeNext(new Func1<Throwable, Observable<? extends Void>>() {
@Override
public Observable<? extends Void> call(Throwable throwable) {
return Observable.empty();
}
});
}
问题是,在这个 API 回调之后,我链接了更多的 observables:
apiCallBackObservable().map(new Func1<Void, String>() {
@Override
public String call(Void aVoid) {
return "Ok";
}
}).flatmap(...).flatmap(....)....;
但不知何故,当代码到达 onErrorResumeNext(因为超时)时,链停止它永远不会到达下一个地图,没有错误没有任何东西它只是停止。
解决方案
推荐阅读
- php - 如何将数据从 div 标签存储到数据库?
- php - Laravel Symfony/console,由于“无效参数”而导致安装失败?
- c# - 在 C# 中使用随机单词数组
- python - Min Max 类似函数,使用 if best == None 和 Python 中循环内的条件
- aws-amplify - 如何在两个或多个放大控制台应用程序之间共享单个 route53 域
- python-3.x - 在 Django FileField 中,如何设置包含随机 url 的 file.name?
- spring-boot - 尝试在方法逻辑发生之前向前端发送 Http 响应
- javascript - Knex 要求安装 sqlite3 但我使用的是 mysql 数据库
- scala - 从命令行参数化 SBT DockerPlugin
- vba - 使用 VBA 在 Word 中编辑特定的页脚列