Вариант реализации:
public Publisher<Void> sendMyFlux(HttpServerRequest req, HttpServerResponse resp) {
return myFlux
.collectList()
.flatMap(data -> {
return resp
.status(HttpResponseStatus.OK)
.addHeader(ACCESS_CONTROL_ALLOW_ORIGIN, "*")
.sendString(Flux.just("Success"))
.then();
})
.onErrorResume(error -> {
return resp
.status(HttpResponseStatus.BAD_REQUEST)
.addHeader(ACCESS_CONTROL_ALLOW_ORIGIN, "*")
.sendString(error.getMessage())
.then();
});
}
В этом примере мы используем оператор `.then()` вместо метода `.sendString()`, чтобы вернуть тип `Mono<Void>`, который требуется для функции типа `Publisher<Void>`.
Также мы переместили оператор `.onErrorResume()` вне оператора `.flatMap()`, чтобы он стал одним из основных операторов в цепочке реактивных операций. Это позволяет ему отлавливать ошибки, возникшие во время выполнения `myFlux`, и обрабатывать их соответствующим образом.
В результате, если `myFlux` завершается без ошибок, будет отправлен успешный ответ с кодом состояния 200 и сообщением "Success". Если `myFlux` завершается с ошибкой, будет отправлен ответ с кодом состояния 400 и сообщением об ошибке, полученным с помощью `error.getMessage()`.