我需要做的是做一个可完成的调用(验证会话令牌),然后一旦完成,在下一个请求中更新会话令牌(返回最后一个调用,这是一个)。
这是我到目前为止所做的工作,但看起来很麻烦。必须有一个更清洁的方法来做到这一点? 我正在寻找类似于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));
}
答案 0 :(得分:0)
找到更好/更清洁的解决方案。我没有返回一个Completable的verifySessionBeforeApiRequest(),而是改变了我的思维过程,并使其返回一个包含当前或新的sessionID(如果需要)的Single。看起来像这样。
namespace DeleteRecords {
class Program {
static void Main(string[] args) {
string recordName = args[0];
string recordType = args[1];
//Then get and Delete Delete Record
}
}
}