java - vertx中future的完成方法的用途是什么?

标签 java future vert.x

我是 VertX 框架的新手(也是响应式编程)。当我读到“ future ”时,我不明白“完成者”方法的用途是什么,什么时候必须使用?如果有人可以帮助我,我将不胜感激?

最佳答案

Vert.x 异步方法通常使用 Handler<AsyncResult<X>> 定义。范围。该参数是操作完成时调用的回调。

vertx.createHttpServer().listen(ar -> {
  // callback implementation
});

如您所见,在最新版本的 Vert.x 中,Future<X>实现 Handler<AsyncResult<X>>所以你可以创建一个future并将其直接用作异步操作参数:
Future<HttpServer> serverFuture = Future.future();
vertx.createHttpServer().listen(future);

然后你可以使用 future 的方法,如 mapcompose .

在旧版本中,future 不是异步结果的处理程序,因此您必须使用 completer方法:
Future<HttpServer> serverFuture = Future.future();
vertx.createHttpServer().listen(future.completer());

从 3.7.0 开始,completer方法已弃用,将在版本 4 中删除。

关于java - vertx中future的完成方法的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56001712/

相关文章:

java - 更改一个数组列表项相对于另一个的顺序

java - Android:AudioTrack 无法正常工作

rust - 不能在 mpsc::channel 上使用 Stream::take_while: bool: Future 不满足

java - 如何测试请求是否增加了指标,而在 Vert.x 中没有得到任何响应?

java - 使用自定义异常将函数转换为可完成的函数

java - vert.x 有多单线程?

java - hibernate 多对多级联不起作用

java - 学习 Google 应用引擎和 GWT 的最佳书籍?

Java 线程 - 奇怪的 Thread.interrupted() 和 future.cancel(true) 行为

scala - 使用 future 时程序不会终止