Работая с Stream API, который возвращает строки, я хочу иметь функцию, которая возвращает их в одной строке, разделенной разделителем, в настоящее время использует подписку и добавляется в List, но, очевидно, поскольку асинхронность не будет ждать чтобы подготовить его перед возвратом к функции.
Как реализовать неасинхронный метод?
private String executeStream(String streamId, UserToken currentUserAndToken) {
List combinedString = new ArrayList();
URI streamUri = UriComponentsBuilder.newInstance()
.scheme("https")
.host(host)
.path(streamPath)
.buildAndExpand(streamVariablesMap)
.toUri();
webClientt.get()
.uri(streamUri)
.headers(h -> h.setBearerAuth(currentUserAndToken.getToken()))
.accept(MediaType.TEXT_EVENT_STREAM) // for Server-Sent Events (SSE)
.retrieve()
.bodyToFlux(String.class) // convert the response body to a Flux
.subscribe(data -> combinedString.add(data)); // < --- Here I want to combine all Data into single string
return String.join(", ", combinedString);
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... ava-spring
Как дождаться, пока подписчик завершит TEXT_EVENT_STREAM на Java Spring ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение