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

时间:2018-05-22 15:12:50

标签: java android rx-java rx-java2

我需要做的是做一个可完成的调用(验证会话令牌),然后一旦完成,在下一个请求中更新会话令牌(返回最后一个调用,这是一个)。

这是我到目前为止所做的工作,但看起来很麻烦。必须有一个更清洁的方法来做到这一点? 我正在寻找类似于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));
}

1 个答案:

答案 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
        }
    }
}