结合来自两个Observable的params来执行第三个

时间:2015-06-10 08:30:29

标签: java reactive-programming rx-java

我有两个可观察到的A& B,他们每个人将分别查询数据。现在我想结合两个流的响应数据来做另一个查询。

这是有效的代码:

Observable<App> appObservable = this.appRepository.getApp();
Observable<DeviceInfo> deviceInfoObservable = this.deviceRepository.getDeviceInfo();

Observable<HashMap<String, Object>> combineDataObservable = Observable.zip(appObservable, deviceInfoObservable, (app, deviceInfo) -> {
        HashMap<String, Object> keyVal = new HashMap<>();
        keyVal.put("myApp", app);
        keyVal.put("myDevice", deviceInfo);

        return keyVal;
    });


Observable<String> registerDataObservable = combineDataObservable.flatMap(keyVal -> {
        App app = (App) keyVal.get("myApp");
        DeviceInfo deviceInfo = (JmDeviceInfo) keyVal.get("myDevice");
        return appRepository.registerApp(app, deviceInfo);
    });

有什么方法我不需要使用第三个observable(combinedDataObservable)来准备我想要的数据吗?

由于

0 个答案:

没有答案