Java 在vertx中,未来的补足符方法有什么用途?

Java 在vertx中,未来的补足符方法有什么用途?,java,future,vert.x,Java,Future,Vert.x,我是VertX框架(以及反应式编程)的新手。当我读到“Future”时,我不明白“completer”方法的用法是什么,什么时候必须从中使用do?如果有人能帮助我,我将不胜感激。Vert.x异步方法通常使用处理程序参数定义。此参数是操作完成时调用的回调 vertx.createHttpServer().listen(ar -> { // callback implementation }); 正如您所注意到的,在Vert.x的最新版本中,Future实现了Handler,因此您可以创

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

Vert.x异步方法通常使用
处理程序
参数定义。此参数是操作完成时调用的回调

vertx.createHttpServer().listen(ar -> {
  // callback implementation
});
正如您所注意到的,在Vert.x的最新版本中,
Future
实现了
Handler
,因此您可以创建Future并将其直接用作异步操作参数:

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

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

您在Vertx文档中看到了吗?是的,上面说的是“completer返回一个完成此未来的处理程序”。我知道,例如FutureImpl返回“this”是因为实现的处理程序,但我不明白当一个方法获取completer作为参数时,它是如何使用的?嗯,当一个方法引用被传递给另一个方法/构造函数时,通常意味着最终会被调用,在这种情况下,最有可能在未来完成时,即出现“成功”结果时。非常感谢。你是对的。我检查了很多,发现从future返回的处理程序可以用于完成future。实际上,completer返回处理程序,handle.handle()方法可以将AsyncResult作为参数,并实现其方法以确定future是否已完成或失败。future.future()现在标记为已弃用。它如何改变这个例子?谢谢。@petrch你能再问一个关于你的问题的细节吗?谢谢,我已经找到了我的答案,所以我做得非常好,谢谢你的提问!
Future<HttpServer> serverFuture = Future.future();
vertx.createHttpServer().listen(future.completer());