【问题标题】:RxKotlin, RxJava: Observable/Single not startingRxKotlin,RxJava:Observable/Single 未启动
【发布时间】:2020-08-25 07:36:11
【问题描述】:

我有以下类,它公开一个 Single 以获取 ID。

这用于在该类的 init 上获取 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("")
    })
}

}

【问题讨论】:

    标签: observable rx-java rx-java2 publish-subscribe rx-kotlin2


    【解决方案1】:

    它在构造函数 init 中不起作用的原因是单曲被立即处理掉了。

    init {
    idObservable
        .subscribe { success, _ ->
            Log.d(TAG, "Id: $success")
        }
    

    }

    上面的代码有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多