gpt4 book ai didi

java - RxJava 在第一个 Completable 之后但在返回下一个单个之前更新数据

转载 作者:太空宇宙 更新时间:2023-11-04 10:26:36 26 4
gpt4 key购买 nike

我需要做的是进行一个可完成的调用(验证 session token ),然后完成后,在下一个请求中更新 session token (返回最后一个调用,这是一个调用)。

这就是我到目前为止所拥有的,它可以完成工作,但看起来很困惑。必须有一种更清洁的方法来做到这一点?我正在寻找类似于 flatmap() 工作方式的解决方案,但我想返回最后一个。

Single<ItemsResponse> getItems() {

return verifySessionBeforeApiRequest().andThen
(Completable.create(new CompletableOnSubscribe() {
@Override
public void subscribe(CompletableEmitter e) throws Exception {
nextRequest.setSession(getSessionId());
e.onComplete();
}
})).andThen(makeFinalCall(nextRequest));
}

最佳答案

找到了更好/更干净的解决方案。我没有使用 verifySessionBeforeApiRequest() 返回 Completable ,而是改变了我的思维过程,使其返回包含当前或新 sessionID(如果需要)的 Single 。看起来像这样。

 public Single<ItemsResponse> getItems() {
return verifySessionBeforeApi().flatMap(new Function<String, SingleSource
<? extends ItemsResponse>>() {
@Override
public SingleSource<? extends ItemsResponse> apply(String sessionId)
throws Exception {
return makeFinalCall(new nextRequest(sessionId));
}
});
}

关于java - RxJava 在第一个 Completable 之后但在返回下一个单个之前更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50471108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com