vertx中future的completer方法有什么用?

时间:2019-05-06 08:47:26

标签: java future vert.x

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

1 个答案:

答案 0 :(得分:3)

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);

然后您可以使用将来的方法,例如mapcompose

在旧版本中,future不是异步结果的处理程序,因此您必须使用completer方法:

Future<HttpServer> serverFuture = Future.future();
vertx.createHttpServer().listen(future.completer());

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