【发布时间】:2017-09-09 01:38:22
【问题描述】:
我有两个 Completable 需要一个接一个地调用。我有这个代码:
public Completable getMyCompletable() {
return getFirstCompletable().andThen(getSecondCompletable());
}
public Completable getFirstCompletable() {
return Completable.fromFuture(getFirstFuture());
}
public Completable getSecondCompletable() {
return Completable.fromFuture(getSecondFuture());
}
第二个 Future 依赖于第一个 Future 的完成,否则会失败。问题(我认为)是当我调用 getSecondCompletable() 并将结果传递给 andThen() 时,第二个 Future 被创建并开始运行,即使第二个 Completable 尚未被订阅并且第一个 Future 没有完成了。这会导致第二个 Future 操作失败,而第一个 Future 操作很快就会成功。
我正在将此代码从 RxJava 1 迁移到 RxJava 2。最初该代码使用 FlatMap 连续运行两个 Single<Void> 操作。因为它使用了 FlatMap,所以直到第一个 Future 完成后才创建第二个 Future。如何在 RxJava 2 中获得这种行为?
【问题讨论】: