У меня есть наблюдаемое, которое испускает длинные значения. Как только я получу длинное значение> 0, мне просто нужно прервать выбросы и нажать onComplete. Есть ли лучший способ сделать это, чем способ взлома, который я сделал
long id = -1l;
methodA()
.subscribeOn(Schedulers.io())
.flatMapObservable(list -> Observable.from(list))
.flatMap(eachObject -> methodB(eachObject))
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Long>() {
@Override
public void onCompleted() {
//some callbacks
}
@Override
public void onError(Throwable e) {
//just say error
}
@Override
public void onNext(Long mId) {
if (id < 0) {
id = mId;
}
}
});