final Observable<A> aResponse =a.update(52, 33, "759", obj);
final Observable<B> bResponse =b.fetch(52, 759);
Map map1 = new HashMap();
Map map2 = new HashMap();
两个rest api调用返回Observables.results连接在下面,map1和map2被填充。
.concat
我在这里使用concat来组合两个API的结果。我如何在这里使用.zip()或任何其他函数。flatmap()
可以在这里使用吗?.OnErrorResumeNext
用于在响应抛出错误时继续执行bResponse。如果Response失败,如何更好地记录错误。是否应该在OnErrorResumeNext中进行。
使用.subscribe
使观察者可以看到由两个可观察对象的级联发出的项。onError
如果bResponse失败,我将使用onError记录错误。如何做得更好?onNext
在onNext中,我将获取对象,如果它是B的实例,则将它键入B,然后填充map1和MAP2中的项。我怎样才能更好地纠正这件事?
Observable.concat(aResponse, bResponse)
.onErrorResumeNext(new Func1<Throwable, Observable<B>>() {
@Override
public Observable<B> call(Throwable throwable) {
return bResponse;
}
})
.subscribe(new Subscriber<Object>() {
@Override
public void onCompleted() {
System.out.println("The response list after the fututres");
}
@Override
public void onError(Throwable e) {
System.out.println("ERROR IN BRESPONSE");
e.printStackTrace();
}
@Override
public void onNext(Object o) {
if(o instanceof B)
{
((B)o).getSomething().stream().forEach( s -> {
map1.put(s.getId(),s.getNumber());
map2.put(s.getId(), s.getList());
});
}
}
});
}
下面的代码仅在观察2完成后才从观察1发出项。 我需要实现另一种行为 第二个可观测对象仅发射项目,而第一个可观测对象为空,然后发射第一个可观测对象的项目。 我无法找到只使用基本运算符的正确解决方案,自定义运算符startWithDefault的正确RxJava 2实现应该是什么样子? 附笔。 由于种族原因,在可观察到立即发射的情况下,这不是正确的解决方案1
我正在尝试开发我的第一个RxJava例子 我有一个带有文本框和三个按钮的主要活动。第一个按钮初始化单独类中的整数。第二个按钮订阅一个可观察量,该可观察量假定正在观察整数。第三个按钮将整数的值减小 1。 这是我的密码 和班级 当我尝试使用 订阅时,它只是给了我 的值(即 6),然后它给了我完成! 然后我尝试使用,认为我需要使用,只是而不是,但后来我得到了一个返回的空的,然后再次完成! 有人能帮助我从
我正在使用较新的RX java,而不是 如果一切正常的话,这段代码几乎可以完美地工作。但如果我故意犯了个错误,比如我关掉了WiFi。而不是改型获得“UnknownHostException”...因为它应该发生在try catch块中的reverfit调用(getUser)中。但它没有将错误处理到onError(Throwable t)-->(我可以处理的地方),而是使应用程序崩溃。这就像错误从未
我用java和gradle写了一个简单的Rxjava代码,但是我得到了一些错误,细节如下: 这是我的简单java源代码: 这是我的gradle.build源代码: 我是一个初学者,所以我问,但我做了一个测试在android工作室,相同的java代码,并运行成功。
Java8流与RxJava可观测数据类似吗? Java 8流定义:
我正在尝试在MVVM中实现一个ViewModel,提供可观察的东西作为“输入流”,提供观察者作为“输出流”供视图绑定。