我无法 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
吗?
原文由 GuyT 发布,翻译遵循 CC BY-SA 4.0 许可协议
thenApply
如果你有同步映射功能就用。thenCompose
如果您有异步映射函数(即返回CompletableFuture
的函数),则使用。然后它将直接返回带有结果的未来,而不是嵌套的未来。