【发布时间】:2016-07-21 15:58:38
【问题描述】:
RxJava 中是否有任何操作符来实现订阅状态?我想在 observable 订阅和取消订阅时收到通知。
我知道的唯一方法是使用 doOnSubscribe 和 doOnUnsubscribe 运算符创建 PublishSubject 并向主题发送事件。
【问题讨论】:
标签: rx-java
RxJava 中是否有任何操作符来实现订阅状态?我想在 observable 订阅和取消订阅时收到通知。
我知道的唯一方法是使用 doOnSubscribe 和 doOnUnsubscribe 运算符创建 PublishSubject 并向主题发送事件。
【问题讨论】:
标签: rx-java
您可以获取订阅者并使用 TestSubscriber,它允许您等到订阅者取消订阅,或者知道当前状态。
@Test
public void testIntervalObservable() {
Subscription subscription = Observable.interval(50, TimeUnit.MILLISECONDS)
.map(time -> "item emitted\n")
.subscribe(System.out::print);
new TestSubscriber((Observer) subscription).awaitTerminalEvent(200, TimeUnit.MILLISECONDS);
}
【讨论】: