重新编辑:我将使用这个方法的结果来初始化我视图中一些按钮的可见性,理论上公认的答案似乎很好,但是第一个方法的返回值是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
我重新编辑我的答案,以下返回类型是你需要的。
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流定义: