Rx java RxJava2如何将concat()用于4个以上的可观察对象
我目前有这种方法,效果很好:Rx java RxJava2如何将concat()用于4个以上的可观察对象,rx-java,observable,rx-java2,Rx Java,Observable,Rx Java2,我目前有这种方法,效果很好: public static Observable<MyCustomObject> run(Service networkService) { return Observable.concat( networkService.getThingOne().map(response -> { Request request = response.raw().request(); MyCu
public static Observable<MyCustomObject> run(Service networkService) {
return Observable.concat(
networkService.getThingOne().map(response -> {
Request request = response.raw().request();
MyCustomObject case = new MyCustomObject(request);
return case;
}),
networkService.getThingOne().map(response -> {
Request request = response.raw().request();
MyCustomObject case = new MyCustomObject(request);
return case;
}),
networkService.getThingOne().map(response -> {
Request request = response.raw().request();
MyCustomObject case = new MyCustomObject(request);
return case;
}),
networkService.getThingOne().map(response -> {
Request request = response.raw().request();
MyCustomObject case = new MyCustomObject(request);
return case;
})
);
}
公共静态可观察运行(服务网络服务){
返回可观察的.concat(
networkService.getThingOne().map(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
}),
networkService.getThingOne().map(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
}),
networkService.getThingOne().map(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
}),
networkService.getThingOne().map(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
})
);
}
它只是一次又一次地被观察到。如果我在其中添加另一个,如下所示:
public static Observable<MyCustomObject> run(Service networkService) {
return Observable.concat(
networkService.getThingOne().map(response -> {
Request request = response.raw().request();
MyCustomObject case = new MyCustomObject(request);
return case;
}),
networkService.getThingOne().map(response -> {
Request request = response.raw().request();
MyCustomObject case = new MyCustomObject(request);
return case;
}),
networkService.getThingOne().map(response -> {
Request request = response.raw().request();
MyCustomObject case = new MyCustomObject(request);
return case;
}),
networkService.getThingOne().map(response -> {
Request request = response.raw().request();
MyCustomObject case = new MyCustomObject(request);
return case;
}),
networkService.getThingOne().map(response -> {
Request request = response.raw().request();
MyCustomObject case = new MyCustomObject(request);
return case;
})
);
}
公共静态可观察运行(服务网络服务){
返回可观察的.concat(
networkService.getThingOne().map(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
}),
networkService.getThingOne().map(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
}),
networkService.getThingOne().map(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
}),
networkService.getThingOne().map(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
}),
networkService.getThingOne().map(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
})
);
}
然后我在concat()
和returncase
下得到一条红线,但就在case
部分
有人对此有什么想法吗
编辑:我将我的问题标题从“为什么这不起作用”更新为“我如何才能让它起作用”?我基本上有10个观测值,我想把它们放在concat()中,我可能会添加更多。所以我需要一些没有限制的东西。concat()
接受和Iterable
,其中应包含观察值:
公共静态可观察运行(服务网络服务){
ArrayList observables=新的ArrayList();
添加(networkService.getThingOne().map)(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
}));
添加(networkService.getThingOne().map)(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
}));
添加(networkService.getThingOne().map)(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
}));
添加(networkService.getThingOne().map)(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
});
添加(networkService.getThingOne().map)(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
}));
返回可观察的。concat(可观察的);
}
请原谅任何语法错误,我已经有一段时间没有使用Java了concat()
接受和Iterable
,其中应包含观察值:
公共静态可观察运行(服务网络服务){
ArrayList observables=新的ArrayList();
添加(networkService.getThingOne().map)(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
}));
添加(networkService.getThingOne().map)(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
}));
添加(networkService.getThingOne().map)(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
}));
添加(networkService.getThingOne().map)(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
});
添加(networkService.getThingOne().map)(响应->{
请求=response.raw().Request();
MyCustomObject案例=新的MyCustomObject(请求);
返回案例;
}));
返回可观察的。concat(可观察的);
}
请原谅任何语法错误,我已经有一段时间没有使用Java了。
concat
只允许4个源。@GVillani82知道我在这种情况下能做些什么。我有大约10个观察值要串在一起。getthingo()
…getThingTen()
。使用concatArray
concat
只允许4个源。@GVillani82任何关于我在这种情况下能做什么的想法。我想知道大约10个观测值