处理单一订阅的最干净的方法
Cleanest way to dispose of Single subscriptions
我正在使用 RxHttpClient 发出请求,return我使用 .firstOrError() 来发送请求。然后我订阅它以获得结果。为了处理该订阅,我在下面的示例中使用了 CompositeDisposable。
有没有其他不需要那么多样板文件的方法?在当前情况下我是否需要这样做?
此代码位于需要向另一个 API 发出请求以验证某些数据的 API 中。
single = httpClient.retrieve(HttpRequest.POST("/endpoint", request), ResultDto.class)
.firstOrError()
.subscribeOn(Schedulers.io())
CompositeDisposable cd = new CompositeDisposable();
Disposable d = single.subscribe(result -> {
// ...
cd.dispose();
}, error -> {
cd.dispose();
});
cd.add(d);
几乎所有这些都是必要的,假设您实际上没有像那样创建 CompositeDisposable
然后将其丢弃。
如果你提供 cd
作为 subscribe
.
的第三个参数,你可以用 RxJava 3 保存 cd.add(d);
或许 Disposable d=
我正在使用 RxHttpClient 发出请求,return我使用 .firstOrError() 来发送请求。然后我订阅它以获得结果。为了处理该订阅,我在下面的示例中使用了 CompositeDisposable。
有没有其他不需要那么多样板文件的方法?在当前情况下我是否需要这样做?
此代码位于需要向另一个 API 发出请求以验证某些数据的 API 中。
single = httpClient.retrieve(HttpRequest.POST("/endpoint", request), ResultDto.class)
.firstOrError()
.subscribeOn(Schedulers.io())
CompositeDisposable cd = new CompositeDisposable();
Disposable d = single.subscribe(result -> {
// ...
cd.dispose();
}, error -> {
cd.dispose();
});
cd.add(d);
几乎所有这些都是必要的,假设您实际上没有像那样创建 CompositeDisposable
然后将其丢弃。
如果你提供 cd
作为 subscribe
.
cd.add(d);
或许 Disposable d=