vertx中未来的完成方法有什么用?

what is the usage of completer method of future in vertx?

我是 VertX 框架的新手(也是响应式编程)。当我读到 'Future' 时,我不明白 'completer' 方法的用法是什么,什么时候必须使用它?如果有人能帮助我,我将不胜感激?

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 中删除。