Как дождаться, пока подписчик завершит TEXT_EVENT_STREAM на Java SpringJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как дождаться, пока подписчик завершит TEXT_EVENT_STREAM на Java Spring

Сообщение Anonymous »

Работая с 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»