gpt4 book ai didi

java - Android rx按顺序调用多个句子

转载 作者:行者123 更新时间:2023-12-01 16:26:07 24 4
gpt4 key购买 nike

堆栈溢出社区,我刚刚开始响应式编程 rx,我有以下代码块,总而言之,我有一个带有 ROOM 的插入,使用生成的 id,我通过带有改造的 REST 服务保存此信息,如果服务回答说保存正确,我更新注册表成功。到目前为止,我已经有了这段代码,但我认为除了它生成的嵌套之外,它非常丑陋。

预先感谢您的支持。

致以诚挚的问候

        acta.setStatus(0);
disposable.add( actaDataSource.insert( acta )//Call insert row DAO with ROOM and return Single<Long>
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new DisposableSingleObserver<Long>() {
@Override
public void onSuccess(Long id) {
acta.setId( id );
mOcrRepository.putActa( acta )//Call service rest with retrofit for save data in server
.subscribeOn( Schedulers.io() )
.observeOn( AndroidSchedulers.mainThread() )
.subscribeWith( new DisposableSingleObserver<ActaResponse>(){
@Override
public void onSuccess(ActaResponse actaResponse) {
if( actaResponse.isSuccess() ){
acta.setStatus(1);
actaDataSource.update( acta )//Call update row DAO with ROOM and return Completable
.subscribeOn( Schedulers.io() )
.observeOn( AndroidSchedulers.mainThread() )
.subscribeWith(new CompletableObserver() {
@Override
public void onSubscribe(Disposable d) {

}

@Override
public void onComplete() {
//Return three steps succes complete
}

@Override
public void onError(Throwable e) {
//Return three steps failed
}
});
}else{
//Return one step success complete and two step failed

}
}

@Override
public void onError(Throwable e) {
//Return one step success complete and two step failed
}
});
}

@Override
public void onError(Throwable e) {
//Return all failed
}
}));

最佳答案

使用flatmap运算符可以帮助您清理代码并使其看起来简单。

关于java - Android rx按顺序调用多个句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62143798/

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