我期望flatMapCompletable在Completable正常完成时会调用给定的Action。但是,它不像我想的那样工作。这是一个简单的例子:
PublishProcessor<String> processor = PublishProcessor.create();
processor.flatMapCompletable(s2 -> {
System.out.println("s2 " + s2);
return Completable.complete();
}).subscribe(() -> {
System.out.println("done"); // it does not come here
});
Run Code Online (Sandbox Code Playgroud)
这是预期的行为吗?如果是这样,我如何检查“完成任务”是否已完成?Completable.complete().doFinally()?
您需要调用processor.onComplete();才能获得Action onComplete。这是因为您在侦听传入事件时仍订阅主题。
Flowable 正常完成
Flowable.just(1).flatMapCompletable(s2 -> {
System.out.println("s2 " + s2);
return Completable.complete();
}).subscribe(() -> {
System.out.println("done"); // it does come here
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5224 次 |
| 最近记录: |