#lambda #java-8 #stream #rx-java
#лямбда #java-8 #поток #rx-java
Вопрос:
У меня есть фрагмент кода
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. Просто идея, которую можно развить на основе —
map
это вSimpleEntry
ofId, Response
… используйте идентификатор как текущий иResponse
используйте позже.
Ответ №1:
Это будет что-то вроде этого:
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))
);