处理单一订阅的最干净的方法

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=