简体   繁体   English

如何在vertx的阻塞代码中返回数据

[英]How can I return data in Blocking code of vertx

for example:例如:

public Future<String> test() {
    Future<String> future = Future.succeededFuture();

    return vertx.createSharedWorkerExecutor("test")
        .executeBlocking(y -> {
            return future.map("Something");
        })
        .compose(x -> {
            return future;
        });
}

I want to return String in Blocking code,but it always return null.我想在阻塞代码中返回字符串,但它总是返回空值。

You don't need to define Future externally, as you do now.您不需要像现在一样在外部定义Future

In your code, y is already a Promise (next version of Future )在您的代码中, y已经是一个PromiseFuture下一个版本)

Your code could be simplified to:您的代码可以简化为:

public Future<String> test() {
    return vertx.createSharedWorkerExecutor("test")
        .executeBlocking(future -> {
            return future.complete("Something");
        });
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM