我是VertX框架的新手(以及反应式编程)。当我读到“未来”时,我不明白“完成”方法的用途,什么时候必须使用?如果有人可以帮助我,我将不胜感激。
答案 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);
然后您可以使用将来的方法,例如map
或compose
。
在旧版本中,future不是异步结果的处理程序,因此您必须使用completer
方法:
Future<HttpServer> serverFuture = Future.future();
vertx.createHttpServer().listen(future.completer());
从3.7.0版开始,completer
方法已弃用,并将在版本4中删除。