1 回答

TA貢獻1829條經(jīng)驗 獲得超7個贊
這樣的事情應(yīng)該適用于此:
Flowable<Item> loadRange(int start, int number) {
return Flowable.create(emitter -> {
try {
while (...){
emitter.onNext(new Item());
}
emitter.onComplete();
} catch (IOException e) {
emitter.onError(e);
}
}, BackpressureStrategy.BUFFER);
}
我假設(shè)一旦循環(huán)完成你想要完成,也向下游發(fā)送錯誤,而不是處理方法簽名。您也可以更改BackPressureStrategy以適合您的用例,即DROP,LATEST等等。
由于您是 RxJava 的新手,匿名類將是:
Flowable<Item> loadRange(int start, int number) {
return Flowable.create(new FlowableOnSubscribe<Item>() {
@Override public void subscribe(FlowableEmitter<Item> emitter) {
try {
while (...){
emitter.onNext(new Item());
}
emitter.onComplete();
} catch (IOException e) {
emitter.onError(e);
}
}
}, BackpressureStrategy.BUFFER);
}
添加回答
舉報