第3章 Eclipse Vert.x 4 で変更された内容


本セクションでは、Eclipse Vert.x 4 リリースと 3.x リリースの基本的な相違点を説明します。

3.1. 非同期操作に future メソッドを使用

Eclipse Vert.x 4 は、非同期操作に future を使用します。すべての callback メソッドには、対応する future メソッドがあります。Future は非同期操作の作成に使用できます。Callback と future メソッドの組み合わせを使用して、callback ベースのアプリケーションを Eclipse Vert.x 4 に移行できます。ただし、非同期操作の callback を引き続き使用することもできます。

以下の例は、Eclipse Vert.x 3.x リリースでコールバックが非同期操作に使用される方法を示しています。

WebClient client = WebClient.create(vertx);
HttpRequest request = client.get("/resource");

request.send(ar -> {
  if (ar.succeeded()) {
    HttpResponse response = ar.result();
  } else {
    Throwable error = ar.cause();
  }
});
Copy to Clipboard

以下の例は、Eclipse Vert.x 4 で callback メソッドと future メソッドを非同期操作に使用する方法を示しています。

WebClient client = WebClient.create(vertx);
HttpRequest request = client.get("/resource");

Future<HttpResponse> response = request.send();

response.onComplete(ar -> {
  if (ar.succeeded()) {
    HttpResponse response = ar.result();
  } else {
    Throwable failure = ar.cause();
  }
});
Copy to Clipboard

Future でエラー処理が改善されました。Callback では構成の各段階で障害を処理する必要がありますが、future は障害を一度処理できます。基本的なアプリケーションでは、コールバックと future の使用との違いに気付かない場合があります。

以下の例は、callback を使用して 2 つの非同期操作を作成する方法を示しています。すべての構成でエラーが処理されることが確認できます。

client.get("/resource1").send(ar1 -> {
  if (ar1.succeeded()) {
    HttpResponse response = ar.result();
    JsonObject json = response.body();
    client.put("/resource2").sendJsonObject(ar2 -> {
      if (ar2.succeeded()) {
        // Handle final result
      } else {
        Throwable failure2 = ar.cause();
      }
    });
  } else {
    Throwable failure1 = ar.cause();
  }
});
Copy to Clipboard

以下の例は、Eclipse Vert.x 4 で callback および future を使用して 2 つの非同期操作を作成する方法を示しています。エラーは最後に一度のみ処理されます。

Future<HttpResponse> fut1 = client.get("/resource1").send();

Future<HttpResponse> fut2 = fut1.compose(response -> client.put("/resource2").sendJsonObject(response.body()));

fut2.onComplete(ar -> {
  if (ar.succeeded()) {
    // Handle final result
  } else {
    Throwable failure = ar.cause();
  }
});
Copy to Clipboard
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat