У меня есть следующий код:
List<Map<String, Object>> results =
inputs.stream().map(this::get).collect(Collectors.toList());
Map<String, Object> get() {
Future<Response> resFuture = client.get(requests); //scala API, returns scala Future
Response res = Await.result(resFuture, deadline);
}
Как вместо этого изменить код на Asyn c? то есть, не используя Await.result, который блокирует.
input.stream (). Map (this :: get) - это последовательный вызов IIU C. Я хочу, чтобы "client.get ()" выполнялся параллельно для каждого элемента входных данных, а затем я могу ждать, пока все ответы будут готовы для обработки.
Похоже, Future.sequence может помочь здесь. Но не уверен, как это реализовать.