我是RxJava的新手并遇到了问题。这是我获取A:
列表的代码 Utils.getRetrofit().create(StoryAPI.class).getCategories() // Observable<Wrapper<List<A>>>
.map(Wrapper::getResult) // List<A>
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(list -> {
Observable.range(0, list.size())
.subscribe(m -> {
menu.add(2, list.get(m).getId(), m + 6, list.get(m).getName());
}, Logger::logException);
}, Logger::logException);
有没有办法阻止这样的嵌套Observable,并将Observable.range
移到subscribe()
答案 0 :(得分:0)
// define i
int i = 0;
Utils.getRetrofit().create(MyAPI.class).getList() // got Observable<Wrapper<List<A>>>
.map(Wrapper::getResult) // Wrapper to List<A>
.flatMap(listResult->Observable.from(listResult))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(result->{
menu.add(2,result.getId(),i+6,result.getName());
i++;
});