【发布时间】:2018-06-08 00:00:16
【问题描述】:
我需要使用以下规则组合两个 observable,A 和 B:
- 组合的可观察对象的类型必须是
Maybe<A> - A 可能发射多次或不发射
- B 可能发射 1 次或不发射
- 只要 B 没有发出任何东西,组合的 observable 就不会发出任何东西。
- 当 B 发射时,如果 A 已发射,则 A 的最后一个结果将由组合的 observable 发射。如果 A 还没有发出,
Maybe.empty()将被发出。
我曾尝试使用 combineLatest,但如果 A 尚未发出,则此方法不起作用。还尝试使用mergeWith 并执行flatMap { if(it-was-**B**-who-emitted) Maybe.empty() else Maybe.just(emitted-item) },但我无法从ObservableSource 转换为Maybe
是否可以在 RxJava 2 中创建这样的 observable?
【问题讨论】:
-
你有没有尝试过?发生了什么?
-
@Michael 我已经用我尝试过的描述更新了问题
-
“将发出空的”是什么意思?以防 A 尚未发出
-
@michalbrz 更新了问题。这是
Maybe.empty()