我如何等待 Mono 完成以便我可以利用生成的值
How can I wait for Mono to finish so I can utilise generated value
我想 return 来自 sendRequest() 方法的状态代码,而不是仅仅能够打印值。谁能指出如何将下面的代码修改为 "wait for the Mono to complete"
?
我知道我可以使用 Thread.sleep(1000);
但这似乎不是一个好方法!
private fun sendRequest(url:String): Disposable {
val webClient= WebClient.builder().baseUrl(url.trim())
.defaultHeaders { header: HttpHeaders ->
header.setBasicAuth("username", "password") }
.build();
return webClient.get()
.uri(url)
.exchange()
.map { response: ClientResponse -> response.statusCode() }
.subscribe { v -> printStatus(v)}
}
fun printStatus(statusMono: HttpStatus) {
println(statusMono)
}
我知道,因为我在 Webflux 应用程序中使用 WebClient,所以我必须 return Mono 或 Flux 一直到调用客户端,因为调用客户端是订阅者。但是我不知道怎么弄。
@JEY
发布上面的答案。
这对我有用:
webClient.get().uri(url).exchange().map { it.statusCode() }
我想 return 来自 sendRequest() 方法的状态代码,而不是仅仅能够打印值。谁能指出如何将下面的代码修改为 "wait for the Mono to complete"
?
我知道我可以使用 Thread.sleep(1000);
但这似乎不是一个好方法!
private fun sendRequest(url:String): Disposable {
val webClient= WebClient.builder().baseUrl(url.trim())
.defaultHeaders { header: HttpHeaders ->
header.setBasicAuth("username", "password") }
.build();
return webClient.get()
.uri(url)
.exchange()
.map { response: ClientResponse -> response.statusCode() }
.subscribe { v -> printStatus(v)}
}
fun printStatus(statusMono: HttpStatus) {
println(statusMono)
}
我知道,因为我在 Webflux 应用程序中使用 WebClient,所以我必须 return Mono 或 Flux 一直到调用客户端,因为调用客户端是订阅者。但是我不知道怎么弄。
@JEY
发布上面的答案。
这对我有用:
webClient.get().uri(url).exchange().map { it.statusCode() }