是否有任何清晰,智能的解决方案可以通过其订阅方法来处理?例如。我有一个Observable.interval
,它每秒发出一次Long信号。在我的订阅方法中,我要检查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
}
})
实现此逻辑的最简单正确的方法是什么?
我找到了一个简单的解决方案。只需将变量声明和初始化分为两个步骤。
例如
var observable:Disposable? = null
observable = Observable.interval(1000,TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ num ->
if(num == 20.toLong())
{
observable?.dispose()
}
})