在 RxSwift 中手动处理 DisposeBag

Posted

技术标签:

【中文标题】在 RxSwift 中手动处理 DisposeBag【英文标题】:Manually disposing a DisposeBag in RxSwift 【发布时间】:2016-08-16 07:49:48 【问题描述】:

我想取消一个请求,其中一种方法是手动移除一次性袋子。

.addDisposableTo(disposeBag)

由于我有 disposeBag 对象,除了我上面提到的之外,还有其他取消请求的好方法吗?

【问题讨论】:

【参考方案1】:

您只需更改对 disposeBag 对象的引用。 将其设为 nil 或将新对象分配给 disposeBag。

所有请求都将被取消。

【讨论】:

【参考方案2】:

除了释放DisposeBag 之外,另一个选择是使用CompositeDisposable,它有一个显式的dispose 方法。

【讨论】:

这会处理新订阅还是像清除 RxJava 一样? CompositeDisposable 是这里的门票。

以上是关于在 RxSwift 中手动处理 DisposeBag的主要内容,如果未能解决你的问题,请参考以下文章

如何实现串行网络调用队列然后在 RxSwift 中处理?

防止处理 PublishSubject (RxSwift)

在 RxSwift 中处理嵌套的 observables

观察者在单元格 RxSwift 中处理后仍然接收事件

如何使用 RxSwift 处理应用程序状态

RxSwift 在 Zip 运算符中处理 observable