我有以下情况 -
尝试将受试者放在回调中以将其转换为RX流。
然后,您可以将两个主题汇总为订阅,并订阅可观察到的拉链,以同时获得两个回调的结果
示例:让我们做两个主题
PublishSubject<Data> subject1 = PublishSubject.create();
PublishSubject<Data> subject2 = PublishSubject.create();
我们可以使用这些将回调转换为我们可以订阅的东西:
public void callback1(Data d1) {
subject1.onNext(d1);
}
public void callback2(Data d2) {
subject2.onNext(d2);
}
现在,当他们俩都发出这样的东西时,我们可以获取输出:
class DataDto {
Data data1;
Data data2;
DataDto(Data data1, Data data2) {
this.data1 = data1;
this.data2 = data2;
}
}
public void main() {
Observable.zip(subject1, subject2, new BiFunction<Data, Data, DataDto>() {
@Override
public DataDto apply(@NonNull Data data1, @NonNull Data data2) throws Exception {
return new DataDto(data1, data2);
}
}).subscribe(new Consumer<DataDto>() {
@Override
public void accept(@NonNull DataDto dataDto) throws Exception {
//do something
}
});
}
Zip的作用是,它等待直到两个流都发出,然后将其作为一个项目排放。
在这里,我们制作了一个datadto,其中包含data1和data2
希望这可以帮助
前言: 看了RxJava的Readme和一些关于RxJava的博客,对RxJava有些简单地了解了,开始练个手熟悉一下,练手过程中发现由于RxJava版本迭代,参考博客中给的例子已经不能直接用了,说明这种第三方库的使用还是有风险的。 参考博客:给 Android 开发者的 RxJava 详解 基于RxJava版本:2.1.12 demo地址:点击打开链接 1. RxJava基础知识 RxJava正...
为什么要用RxJava? RxJava的观察者模型可以让我们用各种类似集合的操作符来方便的操作异步数据的集合,Observables和他的近亲Iterable对比。对于普通集合迭代的时候,我们是从集合中拉取数据,而Observables是主动的推送数据到观察者。 RxJava以同样的原则对待同步和异步线程产生的数据流。对于异步操作,避免了回调嵌套地狱。 流式调用让代码更容易阅读理解,减少bug。 ...
Retrofit+RxJava+OkHttp是目前使用最多的网络请求框架,功能强大,在之前的项目中也有使用,所以特意做个总结。 首先对这三者之间的关系进行理解,其实在使用过程当中我们没有看到okhttp3包括在后面的工程引用里也并没有它,但是这个组合里为什么会有它,原因在于Retrofit的底层默认是基于okhttp3实现的,所以它们的关系可以概括为:Retrofit负责请求的数据和请求结果,使用...
个人简书地址: https://www.jianshu.com/p/30c0a0cb5c15 do操作符可以给Observable的生命周期的各个阶段加上一系列的回调监听,当Observable执行到这个阶段的时候,这些回调就会被触发 示例代码如下: 执行结果如下:...
1.为什么我们要使用OkHttp?OkHttp有什么优点? 说OkHttp之前我们先说另外两个网络请求库——HttpUrlConnection和HttpClient。在没有OkHttp之前的日子里,他们才是Android用来完成网络请求的类库。那么这两者都有什么优缺点呢? 为什么不再继续使用下去呢? HttpClient是Apache基金会的一个开源网络库, 功...
前言:对Rx不了解的朋友可以先看我的第一篇博文 RxJava 和 RxAndroid 一 (基础),是对Rxjava的基本介绍 1、merge操作符,合并观察对象 运行结果 2、zip 操作符,合并多个观察对象的数据。并且允许 Func2()函数重新发送合并后的数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
摄像头的8种颜色:橙、黄、绿、紫、灰、蓝、棕、白 分别对应双绞线的8种颜色:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕 简化一点用网线的568B顺序分别对接就是:橙白(接橙色)、橙(接黄色)、绿白(接绿色)、蓝(接紫色)、蓝白(接灰色)、绿(接蓝色)、棕白(接棕色)、棕(接白色) 568A标准:绿白,绿,橙白,蓝,蓝白,橙,棕白,棕 橙绿蓝棕 排列好,先4-6交叉,再1-3、2-6 RJ-4...
静态资源访问失效,是应为其地址无法自动添加项目路径 以下model.html 以下index.html 以下index_1.html 以下controller.java 结果...
配置日志并测试 进入到hive目录修改日志文件名称 在hive目录下创建logs目录 修改hive-log4j.properties配置文件hive.log.dir 把hive.log.dir=${java.io.tmpdir}/${user.name} 修改为 /opt/modules/hive-0.13.1/logs 退出hive 进入hive进行测试 进入 日志文件产生 在hive控制台打印...
最近用beeline替代hive cli,发现之前在hive-site.xml 的 Hive 客户端高级配置代码段(安全阀)的配置项,beeline居然不生效,如下图所示,而hive cli是生效的 查看了执行机器上/etc/hive/conf/hive-site.xml文件,发现配置确实是修改了,一直以为是环境变量的原因,找了几个小时,网上也没相关解释,最后在hive-site.xml 的 Hi...
I'm trying to suppress IE's default handling of Ctrl+O. I've got a onKeyDown handler which get's called, but even though I call event.cancelBubble and return false, the default File|Open command still...
Recently i've picked up Oracle SQL, Right now i'm trying to write a function that later will be used in a view to generate a list. but for now im stuck on the function itself... The function makes use...
I have a problem regarding of creating table. I want to do this: But I got this: I have tried everything and I'm realize that I have problem with the looping. I've tried to put @endforeach before <...
I have a WPF 3D application (C# .NET 4.0) that has a lot of 3D geometries. Now I need to color these geometries by applying a texture. The source for the texture is one large .PNG file like the follow...
after filling the inputs in the view and clicking the submit button, the records gets saved just fine if I use Firefox. The same goes for IE if I'm quick enough. But when I wait 10 seconds, the POST d...