首页 > 解决方案 > 将 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 代码中的, thenApplythenComposemapflatmap/compose

没有等效的方法thenAccept

标签: javavert.x

解决方案


Vert.xFuture不是 JDK CompletionStage

这就是它没有thenAccept方法的原因。

但是,正如您所发现的,它onSuccess扮演着类似的角色。


推荐阅读