Ожидание обратного вызова для нескольких фьючерсов

Недавно я немного углубился в работу с использованием API. API использует библиотеку Unirest http, чтобы упростить работу при получении из Интернета. Естественно, поскольку данные вызываются с сервера API, я пытался быть эффективным, используя асинхронные вызовы API. Моя идея структурирована следующим образом:

Создать массив данных, возвращая результаты фьючерсовОтображение данных + дополнительная информация, собранная из данных

Поэтому мне нужно вернуть все данные, прежде чем я смогу начать второй шаг. Мой код выглядит следующим образом:

Future < HttpResponse < JsonNode >  > future1 = Unirest.get("https://example.com/api").asJsonAsync(new Callback < JsonNode > () {
    public void failed(UnirestException e) {
        System.out.println("The request has failed");
    }
    public void completed(HttpResponse < JsonNode > response) {
        System.out.println(response.getBody().toString());
        responses.put(response);
    }
    public void cancelled() {
        System.out.println("The request has been cancelled");
    }
});
Future < HttpResponse < JsonNode >  > future2 = Unirest.get("https://example.com/api").asJsonAsync(new Callback < JsonNode > () {
    public void failed(UnirestException e) {
        System.out.println("The request has failed");
    }
    public void completed(HttpResponse < JsonNode > response) {
        System.out.println(response.getBody().toString());
        responses.put(response);
    }
    public void cancelled() {
        System.out.println("The request has been cancelled");
    }
});
doStuff(responses);

Как бы я сделал так, чтобы doStuff вызывался только после того, как оба фьючерса были закончены?

Ответы на вопрос(1)

Ваш ответ на вопрос