RxSwift 中的 Replay Subjects 和 Relays 及其实践应用
1. Replay Subjects 详解
Replay Subjects 会临时缓存其所发出的最新元素,缓存大小可由你指定。之后,它会将缓存内容重放给新的订阅者。
下面是一个缓存大小为 2 的 Replay Subject 的示例代码:
example(of: "ReplaySubject") {
// 1
let subject = ReplaySubject<String>.create(bufferSize: 2)
let disposeBag = DisposeBag()
// 2
subject.onNext("1")
subject.onNext("2")
subject.onNext("3")
// 3
subject
.subscribe {
print(label: "1)", event: $0)
}
.disposed(by: disposeBag)
subject
.subscribe {
print(label: "2)", event: $0)
}
.disposed(by: disposeBag)
}
上述代码的执行步骤如下:
1. 创建一个缓存大小为 2 的 Replay Subject。
2. 向 Subject 中添加三个元素。
3. 创建两个对该 Subject 的订
超级会员免费看
订阅专栏 解锁全文
2143

被折叠的 条评论
为什么被折叠?



