【问题标题】:Set return data from Flowable not working in Android从Flowable设置返回数据在Android中不起作用
【发布时间】:2023-03-27 18:55:01
【问题描述】:

我有这些方法:

    fun getMyObjectByCode(code: String): Flowable<Array<MyObject>> {
        return interfaceRest.getObject(code)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread());
    }

然后像这样调用:

   fun getMyObjectByCode(Code: String): MyObject {
        var resultMyObject = MyObject()

        compositeDisposable.add(
            viewmodel.getMyObjectByCode(code).subscribe { result ->
                // just need the first element
                Log.i(TAG, "result :${result[0].toString()}")
                resultMyObject = result[0]
            }
        )

        return resultMyObject
    }

最后:

var myobject = getMyObjectByCode(code)

它工作正常,因为我可以在日志中看到正确的 MyObject,但返回对象从未设置过该值,我做错了什么?

【问题讨论】:

  • viewmodel.getMyObjectByCode(code) 不会发出值,在此之前调用 return 语句,这就是为什么你会得到这样的结果。你不能从这个函数返回对象它总是会延迟

标签: android rx-java2 rx-android


【解决方案1】:

作为一次性要求和可观察的(单 Flowavble 等)。您可以尝试使用

 Single.just(viewmodel.getMyObjectByCode(code))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    • 2018-01-15
    • 2010-09-28
    • 2012-10-23
    • 2017-08-08
    • 2013-12-10
    • 1970-01-01
    相关资源
    最近更新 更多