java - 将 Java 8 CompletionStage 迁移到 Vertx Future
问题描述
我正在尝试将我的 Quarkus vertx 示例代码转换为 Vertx 4.0,并发现了一些问题。
例如,Quarkus 中的原始方法使用 Java 8 CompletionStage。
this.posts.findAll()
.thenAccept(
data -> rc.response()
.end(toJson(data))
);
并转换为Vertx Future 代码。
this.posts.findAll()
.onSuccess(
data -> rc.response().end(Json.encode(data))
);
Java 8 CompletionStages可以转换为Vertx 代码中的, thenApply
。thenCompose
map
flatmap/compose
没有等效的方法thenAccept
。
解决方案
Vert.xFuture
不是 JDK CompletionStage
。
这就是它没有thenAccept
方法的原因。
但是,正如您所发现的,它onSuccess
扮演着类似的角色。
推荐阅读
- c# - 如何获取路由属性 dotnet core 3?
- numpy - Pytorch:将 [1,x] 大小的张量转换为 [x] 大小的张量
- xamarin - ActivityProvider 不运行
- xamarin.forms - 如何从代码中将 Layout 绑定到 ViewModel?
- java - Sceneform:将 WebRTC 媒体流渲染到 ExternalTexture
- nginx - 无法使用 Nginx 访问在 80 以外的端口上运行的 server_block
- swift - 通配符模式匹配:
- typescript - 如何使用量角器验证网页中显示的图形?
- testing - 在 Laravel 中使用 Clousure $next 测试中间件的问题
- c# - 在 Visual Studio 2019 中生成视图时出错