我有一个方法可以从字符串列表中创建一个observable。
public Observable makeUrls() {
List<String> urls = new ArrayList<>();
return Observable.from(urls)
.flatMap(url -> upload(url));
}
现在我希望在发出列表中的所有值后返回方法b。
public Observable b(List<String> strings){
return Observable.from(strings)
..some other work here...;
}
我需要的预期代码是这样的:
public Observable makeUrls() {
List<String> urls = new ArrayList<>();
return Observable.from(urls)
.flatMap(url -> upload(url))
// This part is what i can't figure out how to write...
// I want to call this after all items are emitted but I can't return Observable
.doOnCompleted(()->b(strings));
}
答案 0 :(得分:4)
使用.ignoreElements
和concatWith
:
假设b(strings)
返回Observable<Thing>
:
return Observable.from(urls)
.flatMap(url -> upload(url))
.ignoreElements()
.castAs(Thing.class)
.concatWith(b(strings));