RxJava:如果第一次成功,如何进行第二次api调用,然后创建组合响应

时间:2020-06-02 20:02:33

标签: rx-java2 micronaut

这就是我想要做的:

  1. 调用首次休息API
  2. 如果第一次成功调用秒数休息API
  3. 如果两者都成功->创建汇总响应

我正在Micronaut中使用RxJava2。

这是我所拥有的,但是我不确定这是正确的。如果第一个或第二个API调用失败会怎样?

- svc01_nginx.conf
- svc02_nginx.conf
- scv03_nginx.conf

1 个答案:

答案 0 :(得分:1)

这应该很简单

public Single<AggregatedResponse> login(String data) {
    return firstRestApi.call(data)
             .flatMap((firstResponse) -> secondRestApi.call().map((secondResponse) -> {
                 return Pair.create(firstResponse, secondResponse);
             })
             .map((pair) -> {
                 return convertResponse(pair.getFirst(), pair.getSecond());
             });
}

在这种情况下,您不再需要zipWith。错误只是照常进入错误流。

相关问题