【发布时间】:2017-02-23 11:01:18
【问题描述】:
假设我有一个服务来检索一些作者(id、名字、姓氏、生日、国籍),还有一个服务来检索作者的书(标题、摘要、页数)。 我希望我的网络电话向我返回一份作者名单及其书籍。
为了说明,我的服务将返回我 AuthorOResponse 和 BookResponse,我想发出一个 AuthorObject 的 Observable。
public class AuthorResponse {
private String id;
private String firstname;
private String lastname;
private Date birthday;
private String nationality;
}
public class BookResponse {
private String title;
private String summary;
private int pageNumber;
}
public class AuthorObject {
private String id;
private String firstname;
private String lastname;
private Date birthday;
private String nationality;
private List<BookObject> books
}
我的服务会是这样的
Observable<List<AuthorResponse>> getAuthors()
Observable<List<BookResponse>> getAuthorBooks(String authorId)
我想用它们发出一个 Observable 但不知道怎么做,因为我对 getAuthorBooks 的每个调用都需要一个作者。
我想出了一些看起来像这样的东西,但我遇到了一个问题,因为我的 concatMap 让我“失去”了我的作者。
myServices.getAuthors()
.map(author -> createAuthor())
.concatMap(author -> mWebService.getAuthorBooks(author.getId())
.flatMapIterable(data -> data.items)
.map(book -> addBook())
有人知道我该怎么做吗?
【问题讨论】: