将 combinelatest 触发器 doOnUnsubscribe 其 children
Will combinelatest trigger doOnUnsubscribe of its children
不确定合并的可观察委托是否取消订阅其来源。
如果没有,是否有一种简单的方法可以触发其 children 的取消订阅?
在代码中:
observable o = observable.combinelatest(o1, o2);
如果某事触发了o的退订,是否会触发o1和o2的退订?
不太清楚你的意思。
退订会传播到 o1
和 o2
,但如果您想执行自定义操作,则必须对所有相关方使用 doOnUnsubscribe
:
Observable<T> o = Observable.combineLatest(
o1.doOnUnsubscribe(() -> { }),
o2.doOnUnsubscribe(() -> { }))
.doOnUnsubscribe(() -> { });
o.take(1).subscribe();
但请注意,这些是链全局(而不是每个订阅者)的操作,第二个 subscription/unsubscription 到 o
可能会再次调用它们。如果您需要每个订阅者的资源管理,请查看 using
运算符。
不确定合并的可观察委托是否取消订阅其来源。
如果没有,是否有一种简单的方法可以触发其 children 的取消订阅?
在代码中:
observable o = observable.combinelatest(o1, o2);
如果某事触发了o的退订,是否会触发o1和o2的退订?
不太清楚你的意思。
退订会传播到 o1
和 o2
,但如果您想执行自定义操作,则必须对所有相关方使用 doOnUnsubscribe
:
Observable<T> o = Observable.combineLatest(
o1.doOnUnsubscribe(() -> { }),
o2.doOnUnsubscribe(() -> { }))
.doOnUnsubscribe(() -> { });
o.take(1).subscribe();
但请注意,这些是链全局(而不是每个订阅者)的操作,第二个 subscription/unsubscription 到 o
可能会再次调用它们。如果您需要每个订阅者的资源管理,请查看 using
运算符。