Android RxJava dispose在subscribe中可见
是否有任何清晰和智能的解决方案来处理subscribe方法中的可观测数据? 例如,我有一个Android RxJava dispose在subscribe中可见,android,kotlin,rx-java,Android,Kotlin,Rx Java,是否有任何清晰和智能的解决方案来处理subscribe方法中的可观测数据? 例如,我有一个可观察的间隔,每秒发射很长时间。在我的订阅方法中,我想检查是否比取消订阅早20秒 val observable = Observable.interval(1000,TimeUnit.MILLISECONDS) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread())
可观察的间隔,每秒发射很长时间。在我的订阅方法中,我想检查是否比取消订阅早20秒
val observable = Observable.interval(1000,TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ num ->
if(num == 20.toLong())
{
observable.dispose()//I cant call dispose here because variable 'observable' is not avaliable yet
}
})
实现这种逻辑的最简单和正确的方法是什么?我找到了一个简单的解决方案。只需将变量声明和初始化分为两个步骤
例如
您是否尝试了takeUntil
或takeWhile
操作员?谢谢,是的,takeUntil正是我想要的。
var observable:Disposable? = null
observable = Observable.interval(1000,TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ num ->
if(num == 20.toLong())
{
observable?.dispose()
}
})