- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试从服务器获取一些数据。
Observable<List<Countries>> backendObservable = mCountriesApi.getCountries()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
backendObservable.doOnNext(list -> Log.d(TAG, "doOnNext"));
backendObservable.doAfterNext(list -> Log.d(TAG, "doAfterNext"));
backendObservable.doOnComplete(() -> Log.d(TAG, "doOnComplete"));
backendObservable.subscribe(new Observer<List<Country>>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(List<Country> value) {
Log.d(TAG, "doOnNext"));
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
它有效,我将数据接收到“onNext”中。但 doOnNext、doAfterNext、doOnComplete 方法不会调用。我做错了什么?
最佳答案
直到 observeOn
之前你都知道了,发生了什么?您必须在 Observable
上链接运算符,因为它们是不可变的数据流计划:
backendObservable = backendObservable.doOnNext(list -> Log.d(TAG, "doOnNext"));
backendObservable = backendObservable.doAfterNext(list -> Log.d(TAG, "doAfterNext"));
backendObservable = backendObservable.doOnComplete(() -> Log.d(TAG, "doOnComplete"));
或者更简洁
Observable<List<Countries>> backendObservable = mCountriesApi.getCountries()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.doOnNext(list -> Log.d(TAG, "doOnNext"));
.doAfterNext(list -> Log.d(TAG, "doAfterNext"));
.doOnComplete(() -> Log.d(TAG, "doOnComplete"));
.subscribe(...);
关于java - RxJava2、Retrofit - doOnNext、doAfterNext、doOnComplete 不调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45546591/
我有这样的东西: service.getStuff() .map(...) .observeOn(AndroidSchedule
正如您从下面的代码中看到的,我正在尝试测试在我的存储库中发生的 doOnComplete() 调用的行为。但是,当我模拟客户端的注入(inject)依赖项时,我使用 Observable.just()
在这段代码中: Rx.Observable.range(0,8) .doOnCompleted(() => console.log("range complete")) .take(1
我是 RxScala Observables 的新手,在组合使用 take(n) 和 doOnCompleted() 时遇到奇怪的行为。 下面我有一个测试示例,我相信第一个订阅是正确的(开头为 tak
我有以下情况:我需要从数据库获取数据。当我尝试进入 UI 线程时(这是我的做法): List movies = new ArrayList<>(); for (MovieEntity movie:mo
我是 RX Java 的新手,我有一个问题。我有一个 completable 并且想在获得一个值并在 emmition 的一个步骤中执行一些操作后继续我的操作。 if (mIsCopy) {
我尝试从服务器获取一些数据。 Observable> backendObservable = mCountriesApi.getCountries() .subscribeOn
我正在学习 RxAndroid,并从我项目中的一个非常简单的示例开始。即获取可观察的用户个人资料图片 URL 响应。 下面是获取字符串 URL 值的代码,我使用 Picasso 加载图像 URL。当我
我有一个 Completable observable,我正在使用 doOnComplete() 运算符来更新我的事件。但是,当我使用 setValue 更新实时数据时,用 postValue 替换对
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 4 年前。 Improve
我是一名优秀的程序员,十分优秀!