在一系列concat运算符RxJava之后保留一个参数

时间:2017-05-23 21:07:44

标签: android rx-java rx-java2

是否可以访问运营商的第一个参数?我正在尝试使用zip运算符保留该值,但我没有设法做到这一点。谢谢你的帮助

.concatMap(this::getDeviceStatus)
                .concatMap(this::getCertificateResponse)
                .concatMap(deviceCertificateResponse ->
                        CertificateGenerator.generateCert(deviceCertificateResponse))
                .concatMap(aBoolean -> CrlGenerator.observableCrlGenerator(aBoolean,getCertificateResponse ))  // <- I want to use the first argument again in the last concat map

1 个答案:

答案 0 :(得分:1)

您可以通过嵌套来保留您的上游参数:

Observable.just("initialValue")
    .concatMap(initialValue -> {
        someMethod(initialValue)
            .concatMap(transformedValue -> anotherMethod(initialValue, transformedValue))
    });

此外,使用ObservablesflatMaps时,嵌套可以替换为flatMap overload with result selector