RxSwift 订阅序列
Posted
技术标签:
【中文标题】RxSwift 订阅序列【英文标题】:RxSwift subscribe sequence 【发布时间】:2021-06-07 07:12:14 【问题描述】:我有两个订阅者,订阅了一个名为 profileUpdates
的 BehaviorRelay
可观察类型。
通过发布我的数据,
Observables.shared.profileUpdates.accept(data)
在代码中的两点订阅(假设A
和B
)通过,
Observables.shared.profileUpdates.subscribe(onNext: )
现在,我可以定义获取订阅数据的顺序还是严格依赖于库?
例如,在点A
之后点B
,反之亦然。
【问题讨论】:
【参考方案1】:没有记录的合同保证将调用订阅的订单。它们将按顺序调用,但订单未定义。
最好使用do
运算符:
profileUpdates
.do(onNext: value in
// perform side effect
)
.subscribe(onNext: value in
// perform other side effect
)
.disposed(by: disposeBag)
但是,过度使用 do
运算符(以及与此相关的中继)是一种代码异味,这意味着您仍在进行命令式思考。
【讨论】:
以上是关于RxSwift 订阅序列的主要内容,如果未能解决你的问题,请参考以下文章