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

使用Rxjava进行改型

姚凯歌
2023-03-14
  1. 首先,如果我对Rxjava的理解有错,请告诉我。
  2. 既然我们已经使用API查询使用referfit过滤了数据,那么对已经获得的数据进行操作有什么需要
  3. 为什么在RXJava中使用客户接口对象?因此,我们将其用于观察者或onNext()的位置。
  4. Rxjava是否也有助于检索目的,或者它只是对已经获得的数据进行操作?

共有1个答案

姜景辉
2023-03-14

RXJava可以帮助您进行线程处理,并将其转换为现有的反应性代码。

它使用flowable/observable/single来获取数据(例如,如果在流中有许多数据),它允许使用flowable进行反压。

它还允许您使用基本的反应性的东西,比如在不同的线程中有请求,然后您的观察。

这也意味着您可以将结果/请求作为反应流和映射/转换/...以及RxJava的任何可能。

1)首先,如果我对RXJava的理解有什么错误,请告诉我。

RxJava代表反应式开发。它使用一种基于函数式编程的通用“编码风格”。

2)当我们已经使用API查询使用referfit过滤数据时,对已经获得的数据进行操作有什么需要

因为它是一个拦截器,所以它将“现有”数据转换为反应流。它对已经获得的数据进行操作。至少在这种情况下。

例如(Kotlin):

    var service = Retrofit.Builder()
            .addCallAdapterFactory(RxJava2CallAdapterFactory.createWithScheduler(Schedulers.newThread()))
            .addCallAdapterFactory(ObserveOnMainCallAdapterFactory(AndroidSchedulers.mainThread()))
            .addConverterFactory(GsonConverterFactory.create(GsonUtil.gson()))
            .client(okHttpClient)
            .baseUrl(host!!)
            .build()
            .create(YourService::class.java)

service.getLotsOfData()
       .flatMapIterable{ it }
       .flatMap{ it.id = id+"whatEverModified" }
       .subscribeOn(Schedulers.io)
       .observeOn(AndroidSchedulers.mainThread())

 interface YourService { @GET("lots/of/data") fun getLotsOfData(): Flowable<CustomModel> }

示例(Java):

 YourService service = Retrofit.Builder()
            .addConverterFactory(GsonConverterFactory.create(GsonUtil.gson()))
            .client(okHttpClient)
            .baseUrl(host)
            .build()
            .create(YourService.class);

service.getLotsOfData()
       .flatMapIterable(data -> data)
       .flatMap( data -> { data = data +"whatEverModified"; return data; })
       .subscribeOn(Schedulers.io)
       .observeOn(AndroidSchedulers.mainThread());

 interface YourService { @GET("lots/of/data") Flowable<CustomModel> getLotsOfData();  }

这段代码获取您的数据列表,可以通过每个项迭代,将“WhateverModified”附加到模型中的每个id上,并在IO线程中完成所有工作。在修改和获取所有数据之后,它返回主线程中的数据。订阅=处理数据,观察=消耗数据。

 类似资料:
  • 在网络请求中使用和有什么好处。我见过许多使用的示例,但我想明白为什么。 示例情形: 为每个工作单元创建一个新线程。将使用线程池 但这种争论对应用程序有什么影响呢?还有哪些方面?

  • 如何使用RxJava和Kotlin中的改型创建api调用的泛型类? 我的JAVA实现是:: 首先添加Gradle依赖项:(更新到最新版本(如果可用)) //用于改装 实现“com.squareup.reverfit2:reverfit:2.3.0” 实现“com.squareup.reverfit2:converter-gson:2.3.0” //对于拦截器实现“com.squareup.okht

  • 我试图使用RxJava和Rome的改型,在你建议使用组件拱之前(在这个机会是不可能的,项目是在和50%和只需要继续与拱清理)。 所以问题是这个。我有一个返回POJO的web服务。类似于这样: null 相互作用者 回调 演示文稿 演示者 查看

  • 现在,我使用subject来捕获。subscribe()上的错误,如下所示 在一些电话中 然后,在我的主要活动中,我订阅该行为主题并解析错误

  • 我正在尝试使用Rxjava解决一个经典的文件验证过程。我有一个带有正常标头的CSV文件和另一个标头列表,我需要验证它们是否属于所选数据类型或值是否为空。 我已经用普通java实现了这一点,但我想让我的验证代码更具反应性。这就是我到目前为止所取得的成就。 在这里,我有3个可观察对象要组合和验证,在验证失败的第一个实例(行)中。 以下是我想使用的示例数据: 标题: 名字|姓|性别|出生|出生|出生|出

  • 我只是从改型和RXJava开始。我有一个api调用,它上传一个文件并返回一个http响应,该响应的主体为空,状态为200(以防everythign工作正常)。我把它翻译成: 第二步,在我弄清楚如何映射到改型的请求是链多文件上传。我该怎么做? 也欢迎链接到使用RXJava+Retrifit的高级教程或示例。