我有一個無限可觀察(db觀察者),它發出有限序列的項目,需要處理然後作爲一個組發回。如何合併flatMap中的項目MapIterable
這裏的問題是,如何編寫它以便toList
不會等待原始源完成,而是用於生成flatMapIterable生成的序列;
DbObservable.map(new Func1<Query, List<Item>>() {
@Override
public List<Item> call(Query query) {
return query.items; //get items from db query
}
})
.flatMapIterable(new Func1<List<Item>, Iterable<Item>>() {
@Override
public Iterable<Item> call(List<GeoStop> geoStops) {
return geoStops;
}
})
.flatMap(/*process*/)
.toList() // regenerate List that was passed in to flatMapIterable
//subscribe and emit list of items
沒有達到被卡住等待DbObservable
的onComplete
由於toList
用戶。
你能解釋一下答案嗎? – hardkoded