我需要一些指导来解决以下要求:
我有一个返回Completable
的方法,它里面有 2 个循环,只有当 2 个循环完成迭代所有项目时,外循环才应该返回complete
。
这是我的尝试:
private Completable myMethod(Snapshot snapshot, ...) {
return Completable.create(emitter -> {
Flowable.fromIterable(DAYS)
.flatMapSingle(day -> Flowable.fromIterable(ISSUES)
.filter(this::filterByDay)
.count()
.map(issueCount -> snapshot.setIssueCount(issueCount))
).subscribe(next -> {},
emitter::onError,
emitter::completed);
});
}
这并没有达到我的期望,因为外部循环在内部循环之前完成! 他们独立订阅。 如何使它工作,以便该方法仅在两个循环完成后返回Completable
?
更新的代码片段对我来说效果很好。