0
我有冷观察,当计算调度程序订阅时产生大量的项目,并发送给另一个谁做了更重的工作。rxJava停止观察取消订阅
问题是我想停止所有可观察链,当我退订它。
这有什么经营者?我试图检查是否有订户,但此时我的大部分物品都已排出。
我有冷观察,当计算调度程序订阅时产生大量的项目,并发送给另一个谁做了更重的工作。rxJava停止观察取消订阅
问题是我想停止所有可观察链,当我退订它。
这有什么经营者?我试图检查是否有订户,但此时我的大部分物品都已排出。
创建一个可观察的,做繁重的工作,并可以查看订阅:
obs //emits stuff fast
.flatMap(x ->
Observable.create(
sub -> {
//frequently check subscription status
while (!sub.isUnsubscribed()) {
// do some work
if (finished) break;
}
if (!sub.isUnsubscribed()) {
sub.onNext(result);
sub.onCompleted();
}
}))
//ensure backpressure compliant
.onBackpressureBuffer()
).subscribe(subscriber);
我很笨,因为没有想到这一点。谢谢! –
调用'subscriber.unsubscribe()'将取消整个链条。你有单链吗?你能显示一些代码吗? –
@DaveMoten,Yeap我的第一个可观察的停止发射项目,但是我的(慢速)'flatmap'函数继续处理调用'unsubscribe'之前发射的项目。 –
@GuilhermeTorresCastro您的线程在取消订阅时会中断 - 请检查您正在进行工作时的中断状态并在设置时提前退出。 –