草庐IT

Observables

全部标签

android - 改造 Observables 并在成功请求中访问响应代码

我正在使用Retrofit和RxJava。我知道我可以处理错误thisway,所以我可以处理相应的错误。现在,我有一个api调用,我需要在201Http响应代码中获取请求代码,并在201发生时执行一些操作,如果发生,则执行其他操作响应代码是200。这样做的最佳做法是什么? 最佳答案 在这种情况下,您可以使用返回Observable的方法和Response有一个方法getStatus()用于获取响应代码。这意味着你不会得到反序列化的响应,你需要使用GsonConverter.toBody()从JSON执行手动转换。方法。

android - 如何在 Kotlin 中使用 Retrofit 和 Observables 创建异步调用?

我想使用Retrofit2库进行API调用,返回可观察的通用类型。我在调用时遇到错误:android.os.NetworkOnMainThreadException。 最佳答案 看起来很容易解决,需要考虑两种情况。:1)如果你没有使用RXJava或2)如果你正在使用它1)IfyouareNOTusingRXJava你应该使用方法enqueue当你打电话的时候。你得到的错误是因为你在同一个线程(MainThread)上调用响应这是一个取自网络的示例,该示例将Enqueue与Kotlin结合使用,您可能可以根据自己的情况进行调整over

android - 改造 Observables 和取消

有人可以确认在Observable上调用取消订阅是否是取消请求的正确方法吗?恼人的是,Nexus7会发出重复的网络请求,并且第一次调用需要被丢弃,因为调用Activity已被销毁。我通过在尝试使用它之前检查回调(我自己的)不为空来解决这个问题。然而,取消订阅似乎是一个更好的解决方案,但如果这是正确的方法,则无法找到任何信息。我注意到Retrofit会抛出一个内部错误(InterruptedException),但这并没有出现在我的错误回调中——这是一件好事! 最佳答案 据我所知,是的,取消订阅是更好的方法。如果你还没有RxJava已

android - 如何使用 RxAndroid 压缩 Kotlin 语言中的一些 observables

我有一些问题。我是RxJava/RxKotlin/RxAndroid的初学者,不了解某些功能。例如:importrus.pifpaf.client.data.catalog.models.Categoryimportrus.pifpaf.client.data.main.MainRepositoryimportrus.pifpaf.client.data.main.models.FrontDataModelimportrus.pifpaf.client.data.product.models.Productimportrx.Observableimportrx.Singleimport

android - 如何使用 RxAndroid 压缩 Kotlin 语言中的一些 observables

我有一些问题。我是RxJava/RxKotlin/RxAndroid的初学者,不了解某些功能。例如:importrus.pifpaf.client.data.catalog.models.Categoryimportrus.pifpaf.client.data.main.MainRepositoryimportrus.pifpaf.client.data.main.models.FrontDataModelimportrus.pifpaf.client.data.product.models.Productimportrx.Observableimportrx.Singleimport

ios - 将 UIApplicationDelegate 方法转换为 RxSwift Observables

在RxSwift/RxCocoa中,您可以为委托(delegate)创建响应式(Reactive)包装器(例如UIScrollViewDelegate或CLLocationManagerDelegate),以便为某些委托(delegate)方法启用Rx可观察序列。我正在尝试为UIApplicationDelegate方法applicationDidBecomeActive:实现这个到目前为止,我尝试的方法非常简单,类似于RxCocoa中包含的DelegateProxy子类。我创建了我的DelegateProxy子类:classRxUIApplicationDelegateProxy:D

swift - Rx swift : Use Zip with different type observables

我正在使用RxSwift2.0.0-beta如何以类似zip的方式组合2个不同类型的可观察对象?//Thisworks[just(1),just(1)].zip{intElementsinreturnintElements.count}//Thisdoesn't[just(1),just("one")].zip{differentTypeElementsinreturndifferentTypeElements.count}我目前的解决方法是将所有内容映射到组合类型的可选元组,然后将可选元组压缩为非可选元组。letintObs=just(1).map{int->(int:Int?,st

java - 在 Web 应用程序中使用 RxJava Observables 无法解释的缺乏性能改进

我正在执行一些测试,以评估使用基于Observables的响应式(Reactive)API而非传统的阻塞式API是否具有真正的优势。整个例子是availableonGithug令人惊讶的结果表明thoughput结果是:最好的:返回包装阻塞操作的Callable/DeferredResult的REST服务。还不错:阻止REST服务。最差:返回DeferredResult的REST服务,其结果由RxJavaObservable设置。这是我的SpringWebApp:应用:@SpringBootApplicationpublicclassSpringNioRestApplication{@

java - RX : Run Zipped Observables in parallel?

所以我在玩RX(真的很酷),我一直在转换我的api,它访问Android中的sqlite数据库以返回observables。所以自然而然地,我开始尝试解决的问题之一是,“如果我想进行3次API调用,获取结果,然后在它们全部完成后进行一些处理怎么办?”我花了一两个小时,但我最终找到了ZipFunctionality它可以帮助我轻松解决问题:Observableone=getNumberedObservable(1);Observabletwo=getNumberedObservable(2);Observablethree=getNumberedObservable(3);Observa

swift - RxSwift 合并不同类型的 Observables

我应该如何在RxSwift中合并2种不同类型的Observable?例如:vara:Observablevarb:ObservableObservable.of(a,b).merge()是不可能的,因为类型参数不同。 最佳答案 要合并它们,它们的元素需要具有相同的类型。因此,一种选择是丢弃它们的类型信息并转换为AnyObject。现在它们可以合并了:letstringSubject=PublishSubject()letstringObservable=stringSubject.asObservable().map{$0asAny