将 combinelatest 触发器 doOnUnsubscribe 其 children

Will combinelatest trigger doOnUnsubscribe of its children

不确定合并的可观察委托是否取消订阅其来源。

如果没有,是否有一种简单的方法可以触发其 children 的取消订阅?

在代码中:

observable o = observable.combinelatest(o1, o2);

如果某事触发了o的退订,是否会触发o1和o2的退订?

不太清楚你的意思。

退订会传播到 o1o2,但如果您想执行自定义操作,则必须对所有相关方使用 doOnUnsubscribe

Observable<T> o = Observable.combineLatest(
    o1.doOnUnsubscribe(() -> { }),
    o2.doOnUnsubscribe(() -> { }))
.doOnUnsubscribe(() -> { });

o.take(1).subscribe();

但请注意,这些是链全局(而不是每个订阅者)的操作,第二个 subscription/unsubscription 到 o 可能会再次调用它们。如果您需要每个订阅者的资源管理,请查看 using 运算符。