Вызов метода в объекте предыдущего оператора в лямбда-выражении - PullRequest
1 голос
/ 12 марта 2019

У меня есть кусок кода

client.confirmPayment(identity, entity.getId())
                .map(response -> response.id)
                .flatMap(itemId -> signingService.orderSigning(itemId, identity))
                .doOnSuccess(signatureOrder->signatureOrder.setRedirectUrl("XXXX"));

метод client.confirmPayment возвращает поток типа Response

class Response{
    private String id;
    private String url;
}

Есть ли способ вызова response.url из doOnSuccess оператор?

1 Ответ

1 голос
/ 12 марта 2019

Это будет примерно так:

Single<Response> responseSingle = client.confirmPayment(identity, entity.getId())
    .flatMap(response -> Single.just(response)
        .flatMap(r -> signingService.orderSigning(r.id, identity))
        .doOnSuccess(order -> order.setRedirectUrl(response.url))
    );
...