我有一个Parse服务器的外部请求,它根据项目返回List和每个List项目的2个内部请求。当每个请求都成功返回时,我需要立即保存所有结果(或抛出错误,如果至少其中一个失败,则不保存任何内容)。 我使用RxParse库,我的想法是,在当前迭代的两个内部请求成功完成之前,我可以延迟外部请求的onNext或onComplete回调(这样我就可以保存外部onComplete上的所有内容)。我只设法为外部请求创建Observable,并且使用flatMap等实验没有帮助,外部onNexts和onComplete在内部请求完成之前发生。现在(没有评论实验)它看起来像这样:
boolean[] wasError=new boolean[] {false};
Observable<ParseObject> objects = ParseObservable.find(ParseQuery
.getQuery(DBFields.PARSE_TABLE))); //returned List
objects
.observeOn(AndroidSchedulers.mainThread())
.filter(obj->filterNeededObjects(obj, realm))
//suppose here should be some magic
.subscribe(
obj -> {
//onNext
},
throwable -> {
wasError[0] = true;
//onError
}, () -> {
//onComplete
}
);
如何解决我的问题?