Какое использование завершающего метода будущего в Vertx? - PullRequest
1 голос
/ 06 мая 2019

Я новичок в платформе VertX (и реактивное программирование тоже). Когда я читаю о «Будущем», я не понимаю, как используется метод «завершить», и когда нужно использовать из этого? Буду признателен, если кто-нибудь сможет мне помочь?

1 Ответ

4 голосов
/ 06 мая 2019

Асинхронные методы Vert.x часто определяются с помощью параметра Handler<AsyncResult<X>>.Этот параметр является обратным вызовом, вызываемым после завершения операции.

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

Как вы заметили, в последних версиях Vert.x Future<X> реализует Handler<AsyncResult<X>>, поэтому вы можете создать будущее и использовать егонепосредственно как параметр асинхронной операции:

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

И затем вы можете использовать будущие методы, такие как map или compose.

В старых версиях будущее не было обработчикомдля асинхронных результатов вам пришлось использовать метод completer:

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

Начиная с версии 3.7.0, метод completer устарел и будет удален в версии 4.

...