Como fazer várias solicitações e aguardar até que os dados cheguem de todas as solicitações no retrofit 2.0 - android

código atual:

Retrofit retrofit = new Retrofit.Builder()
                  .baseUrl(Constant.BASEURL)
                  .addConverterFactory(GsonConverterFactory.create())
                  .build();

APIService service = retrofit.create(APIService.class);

Call<ResponseWrap> call = service.getNewsData();

call.enqueue(new Callback<ResponseWrap>() {

  @Override
  public void onResponse(Call<ResponseWrap> call1, Response<ResponseWrap> response) {
    if (response.isSuccess()) {

        ResponseWrap finalRes = response.body();
        for(int i=0; i<finalRes.getResponse().getResults().size(); ++i){
            String title = finalRes.getResponse().getResults().get(i).getWebTitle();
            News n = new News(titleCategory, title, null);
            newsList.add(n);
        }

        AdapterRecommendation adapter = new AdapterRecommendation(getApplicationContext(), newsList);
        listView.setAdapter(adapter);

    }
    else{
        Toast.makeText(getApplicationContext(), "onResponse  - something wrong" + response.message(), Toast.LENGTH_LONG).show();
    }
  }

  @Override
  public void onFailure(Call<ResponseWrap> call1, Throwable t) {
      Toast.makeText(getApplicationContext(), "exception: " + t.getMessage(), Toast.LENGTH_LONG).show();
  }
});

funciona bem.

Agora eu quero fazer várias chamadas (o número de chamadas será decidido em tempo de execução) e todas as chamadas fornecerão dados no mesmo formato. os dados de todas as chamadas precisam ser adicionados ao newsList. Quando os dados estiverem disponíveis em todas as chamadas e adicionados ao newsList, ligue para

AdapterRecommendation adapter = new AdapterRecommendation(getApplicationContext(), newsList);
listView.setAdapter(adapter);

Alguém pode me ajudar qual é a melhor maneira de obter dados de várias chamadas e aguardar até que toda a solicitação não termine no retrofit 2.0.

questionAnswers(3)

yourAnswerToTheQuestion