Combine 框架,从0到1 —— 5.Combine 中的 Subjects

本文介绍了Apple的Combine框架中的Subjects,包括PassthroughSubject和CurrentValueSubject的使用,以及Subject作为订阅者的角色。PassthroughSubject在没有订阅者时会丢弃元素,而CurrentValueSubject能缓存并发布值的变化。示例代码展示了如何使用Subjects,并强调了在实际应用中通常不直接暴露Subject,而是通过操作符隐藏内部实现。
摘要由CSDN通过智能技术生成

 

本文首发于 Ficow Shen’s Blog,原文地址: Combine 框架,从0到1 —— 5.Combine 中的 Subjects

 

内容概览

  • 前言
  • PassthroughSubject
  • CurrentValueSubject
  • Subject 作为订阅者
  • 常见用法
  • 总结

 

前言

 

正所谓,工欲善其事,必先利其器。在开始使用 Combine 进行响应式编程之前,建议您先了解 Combine 为您提供的各种发布者(Publishers)、操作符(Operators)、订阅者(Subscribers)。

Subject 是一类比较特殊的发布者,因为它同时也是订阅者。Combine 提供了两类 SubjectPassthroughSubjectCurrentValueSubject

 

如果您想了解更多 Publishers 的用法和注意事项,可以阅读:Combine 框架,从0到1 —— 5.Combine 提供的发布者(Publishers)

 

PassthroughSubject

官网文档

 

PassthroughSubject 可以向下游订阅者广播发送元素。使用 PassthroughSubject 可以很好地适应命令式编程场景。

如果没有订阅者,或者需求为0,PassthroughSubject 就会丢弃元素。

示例代码:

final class SubjectsDemo {
   
    
    private var cancellable: AnyCancellable?
    private let passThroughtSubject = PassthroughSubject<Int, Never>()
    
    func passThroughtSubjectDemo() {
   
        cancellable = passThroughtSubject
            .sink {
   
                print(#function, $
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值