RxKotlin、RxJava:Observable/Single 未启动
RxKotlin, RxJava: Observable/Single not starting
我有以下 class,它公开了一个 Single 来获取 ID。
这用于在 class 的初始化时获取 ID,以后其他人也可以使用它来获取 ID。
在我订阅此单曲的任何其他地方,我都可以获得 ID。但是这里的init方法中,这个方法好像并没有启动和获取ID。
有人可以帮助我了解我所缺少的吗?
谢谢
class TestClass {
val idObservable: Single<String>
get() {
return Single.create {
fetchId(it)
}
}
init {
idObservable
.subscribe { success, _ ->
Log.d(TAG, "Id: $success")
}
.dispose()
}
private fun fetchId(emitter: SingleEmitter<String>) {
Utils.fetchId(Consumer<String>{
emitter.onSuccess(it)
}, Consumer<Throwable>{
emitter.onSuccess("")
})
}
}
它在构造函数 init 中不起作用的原因是因为正在立即处理单个。
init {
idObservable
.subscribe { success, _ ->
Log.d(TAG, "Id: $success")
}
}
以上代码有效。
我有以下 class,它公开了一个 Single 来获取 ID。
这用于在 class 的初始化时获取 ID,以后其他人也可以使用它来获取 ID。
在我订阅此单曲的任何其他地方,我都可以获得 ID。但是这里的init方法中,这个方法好像并没有启动和获取ID。
有人可以帮助我了解我所缺少的吗? 谢谢
class TestClass {
val idObservable: Single<String>
get() {
return Single.create {
fetchId(it)
}
}
init {
idObservable
.subscribe { success, _ ->
Log.d(TAG, "Id: $success")
}
.dispose()
}
private fun fetchId(emitter: SingleEmitter<String>) {
Utils.fetchId(Consumer<String>{
emitter.onSuccess(it)
}, Consumer<Throwable>{
emitter.onSuccess("")
})
}
}
它在构造函数 init 中不起作用的原因是因为正在立即处理单个。
init {
idObservable
.subscribe { success, _ ->
Log.d(TAG, "Id: $success")
}
}
以上代码有效。