5、RxSwift 中的 Replay Subjects 和 Relays 及其实践应用

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 的订

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值