使用同步和异步调用时,我对Retrofit有扎实的掌握。但是,在创建一些复杂的任务时遇到了一个小问题,我必须这样做:
我读到有关该问题的信息,然后我意识到RxJava将解决我的问题。但是坦率地说,到目前为止,我仍然很难理解整个过程。
如果我读了一些正确的示例以沉浸在RxJava/RxAndroid问题中,那就太好了。
最佳答案
在此示例中,您可以获取ID列表,将其划分为各个可观察对象,为每个ID调用服务,并为每个n
响应获取通知的getDetails
时间。
service.getIds()
.flatMap(ids -> Observable.from(ids))
.map(id -> service.getDetails(id))
.subscribe(detailed -> updateUi(detailed));
您可以使用
Observable.zip
函数来等待几个并行调用,但是我不知道您是否可以在可变大小的调用中使用它。看看这个example:
Observable.zip(
service.getUserPhoto(id),
service.getPhotoMetadata(id),
(photo, metadata) -> createPhotoWithData(photo, metadata))
.subscribe(photoWithData -> showPhoto(photoWithData));