0

我刚开始使用 ReactiveX 和 Retrofit,请考虑以下示例改造示例,

@GET
public Observable<ResponseType1> makeFirstCall();

@POST
public Observable<ResponseType2 makeSecondCallWithFirstResponse(@Body ResponseType1 input);

在另一个 action1 中观察是个好主意吗?像下面

makeFirstCalle().subscribe((responseType1) -> {

    makeSecondCallWithFirstResponse(responseType1).subscribe("second action goes here")

});
4

1 回答 1

2

为什么不使用 concatMap 或 flatMap?

makeFirstCall().concatMap(responseType1 -> makeSecondCallWithFirstResponse(responseType1))
               .subscribe(....)

如果您有额外的 api 调用,您可以继续链接。例如

makeFirstCall().concatMap(responseType1 -> makeSecondCallWithFirstResponse(responseType1))
               .concatMap(responseType2 -> makeThirdCallWithSecondResponse(responseType2))
               .subscribe(....)
于 2016-05-16T12:25:59.657 回答