Я не могу разглядеть разницу между thenApply() и thenCompose().
Итак, может ли кто-нибудь предоставить действительный прецедент?
Из документов Java:
thenApply(Function<? super T,? extends U> fn)
Возвращает новый
CompletionStage, который, когда этот этап завершается как правило, выполняется с результатом этого этапа в качестве аргумента поставляемая функция.
thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
Возвращает новый
CompletionStage, который, когда этот этап завершается как правило, выполняется на этом этапе в качестве аргумента функция.
Получаю, что второй аргумент thenCompose расширяет CompletionStage, где thenApply нет.
Может ли кто-нибудь предоставить пример, в каком случае я должен использовать thenApply и когда thenCompose?