У меня есть этот код:
private Single<Invoice> getInvoiceWithItems() {
return getInvoice().flatMap(invoice -> getItems(invoice)); // <--- Here, I need invoice and items
}
private Single<Invoice> getInvoice() { ... }
private Single<List<Item>> getItems(Invoice invoice) { ... }
Я хочу сделать что-то вроде invoice.setItems(items)
. Я попытался передать дополнительный параметр функции в flatMap
, но он не принимает его.
Как я могу это сделать?
Я нашел это решение, но я не уверен, если оно самый лучший:
private Single<Invoice> getInvoiceWithItems() {
return Single.zip(getInvoice(), getInvoice().flatMap(invoice -> getInvoiceItems(invoice)), (invoice, items) -> {
invoice.setItems(items);
return invoice;
});
}