我有两个完成表,我需要一个接一个地调用。我有这段代码:
public Completable getMyCompletable() {
return getFirstCompletable().andThen(getSecondCompletable());
}
public Completable getFirstCompletable() {
return Completable.fromFuture(getFirstFuture());
}
public Completable getSecondCompletable() {
return Completable.fromFuture(getSecondFuture());
}
第二个未来取决于第一个未来完成,否则它将失败。问题(我认为)是当我调用getSecondCompletable()
并将结果传递给andThen()
时,第二个Future被创建并开始运行,即使第二个Completable尚未订阅并且第一个未来还没有结束。这导致第二个Future操作失败,而第一个Future操作很快就成功了。
我正在将此代码从RxJava 1迁移到RxJava 2.最初,代码使用FlatMap连续运行两个Single<Void>
操作。因为它使用了FlatMap,所以在第一个Future完成之前不会创建第二个Future。如何在RxJava 2中获得此行为?
答案 0 :(得分:2)
您可以使用RxJava 1.x中的相同模式,但也推迟创建第二个未来:
int