当前位置: 首页 > 知识库问答 >
问题:

RXJava-使用可流动异步方式

汪和悌
2023-03-14

重新编辑:我将使用这个方法的结果来初始化我视图中一些按钮的可见性,理论上公认的答案似乎很好,但是第一个方法的返回值是flowable>而不是flowable。因此,我不能将它作为参数传递给订阅,因为它需要可流动的,但它是可流动的

编辑前的问题

override fun doesExist(): Boolean {
        var doesExist = false
        var subscription : Subscription
        val flowable = Flowable.just(SDK.searchContact("contact"))
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(object : FlowableSubscriber<Flowable<List<Contact>>> {

                    override fun onSubscribe(s: Subscription) {
                        subscription = s
                    }

                    override fun onNext(t: Flowable<List<Contact>>?) {
                        doesExist = true
                    }

                    override fun onComplete() {
                        Log.d("tagtagcomplete", "tagtagcomplete")

                    }

                    override fun onError(e: Throwable?) {
                        Log.d("tagtagerror", "tagtagerror")
                    }


        return doesExist
    }

所以我想做的是,如果我不会从searchContract方法得到任何结果,则返回true,如果得到结果,则返回false。在使用observables时,我可以创建一个订阅对象并调用它的方法,但我不知道如何正确地使用流。

我的困惑是:sdk的方法返回一个可流动的 >> ,但在我看来,我需要检查一个联系人是否只存在一次并停止

现在我的方法不进入onError、onNext或OnComplete。它只是返回doesist

共有1个答案

东方俊材
2023-03-14

我重新编辑我的答案,以下返回类型是你需要的。

fun doesExist(): Flowable<Single<Boolean>> {
    return Flowable.just(Single.just(SDK.searchContact("contact")).map{ it.isEmpty()})
}
 类似资料:
  • 我正在学习RxJava/Android(我目前正在将其与网络呼叫改造相结合),现在我有一个问题,假设我有6个不同的可观察对象,如下所示:<代码>可观察 apiInterface等为改造客户端,GetClient等为调用 现在,我如何异步执行这6个不同的调用,以及当所有6个调用都完成时-

  • 假设我们需要向用户发送电子邮件并等待用户回复,然后继续执行工作流。我们是否应该创建一个异步活动来发送电子邮件,并在回复电子邮件到来时完成活动?或者我们是否应该创建一个正常活动来发送电子邮件,然后工作流等待信号,当回复电子邮件到来时,我们将信号发送到工作流?这两个选项是等效的吗?或者有一些差异可以用来决定哪一个用于不同的活动? 提前致谢

  • 是否可以调用一个异步方法,以便它从一个同步的方法异步运行?我不关心它挂起同步调用程序直到它返回,而是希望该方法被异步调用。

  • 默认情况下,createStore() 所创建的 Redux store 没有使用 middleware,所以只支持 同步数据流。 你可以使用 applyMiddleware() 来增强 createStore()。虽然这不是必须的,但是它可以帮助你用简便的方式来描述异步的 action。 像 redux-thunk 或 redux-promise 这样支持异步的 middleware 都包装了

  • Java8流与RxJava可观测数据类似吗? Java 8流定义: