@GetMapping(value = "/list", produces = "application/json; charset=utf-8")
public Observable<List<Person>> allPerson(){
return Observable
.range(0, Integer.MAX_VALUE)
.map(this::listAllPerson)
.takeWhile(list -> !list.isEmpty());
}
[Observables是懒惰的,但是当从其他端点返回一个Observable时,例如,在spring-boot应用程序中,即使没有订阅,它的行为也很渴望。
如何以及为什么?
这个问题可能看起来很愚蠢,但我不知道,也想知道答案。
引擎盖下有一个订阅。框架(我想您正在使用WebFlux)在收到请求时调用allPerson()
方法,订阅返回的Observable并将内容发送回调用方。这一切都是异步发生的,因此该框架能够同时处理多个请求。