我有以下课程,该课程公开了Single来获取ID。
这是用来在该类的init上获取ID的,以后其他人也可以使用它来获取ID。
在我订阅此Single的其他任何地方,我都可以获得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("")
})
}
}
答案 0 :(得分:0)
之所以无法在构造函数init中工作,是因为该单被立即处置。
init {
idObservable
.subscribe { success, _ ->
Log.d(TAG, "Id: $success")
}
}
上面的代码有效。