嗨,我试图让两个 observable 依次被调用,一个接一个。我尝试使用合并,但它不尊重顺序,所以我去使用 concat 代替,主要问题是这两个 Observable 发出不同的类型。从我所看到的情况来看,zip
可能是合并两个不同的 observable 的一个选项,但我还没有完全理解它。
所以具体的问题是,如何一个接一个地调用顺序 API。目前这是我的实现
Observable<SectionEntity> sectionEntitySync = DbProvider.contentResolver(this)
.createQuery(KitchContract.Category.CONTENT_URI, null, KitchContract.DELETED + "=?",
new String[] { KitchContract.NO }, KitchContract.Category.Columns.POSITION + " ASC", true)
.mapToList(SectionEntity::new)
.flatMap(Observable::from)
.flatMap(sectionEntity -> getApi().create(sectionEntity)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread()));
Observable<ItemEntity> itemEntitySync = DbProvider.contentResolver(this)
.createQuery(KitchContract.Item.CONTENT_URI, null, null, null,null, false)
.mapToList(ItemEntity::new)
.flatMap(Observable::from)
.flatMap(itemEntity ->
getApi().create(itemEntity)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
);