Chr*_*ris 2 spring project-reactor spring-webflux
我使用 Reactor (Spring5 WebClient) 作为我的反应式编程 API。我有 2 个 REST 端点要调用。第一个的结果将是第二个的参数。对于第二个 API,它将返回一个带有“hasMore”值的结果。如果此值为true,我应该更改分页参数并再次调用第二个 API。演示代码如下:
client.getApi1()
.map(r -> r.getResult())
.flatMap(p -> client.getApi2(p, 2(page size), 1(page start)))
.subscribe(r -> System.out.println(r.isHasmore()));
Run Code Online (Sandbox Code Playgroud)
如何重复调用第二个 API (getApi2) 直到“hasMore”为假。
此外,我需要更改参数页面大小和页面开始
试试这个代码:
AtomicInteger pageCounter = new AtomicInteger(0);
client.getApi1()
.map(r -> r.getResult())
.flatMap(p -> client.getApi2(p, 2(page size), pageCounter.incrementAndGet()))
.repeat()
.takeWhile(r -> r.isHasmore())
.subscribe(r -> System.out.println(r.isHasmore()));
Run Code Online (Sandbox Code Playgroud)
repeat()无限调用getApi2。
takeWhile(continuePredicate)在continuePredicate ( r.isHasmore())返回true 时中继值
| 归档时间: |
|
| 查看次数: |
2537 次 |
| 最近记录: |