用 Apple 自己的话来说:“Combine 框架为您的应用程序如何处理事件提供了一种声明性方法。您可以为给定的事件源创建一个处理链,而不是潜在地实现多个委托回调或完成处理程序闭包。链的每个部分是一个组合运算符,它对从上一步接收到的元素执行不同的操作。”
这段话初学者必定是无法理解,需要真正使用过Combine后回来看才能有所收获。
我们可以这样理解:
异步数据,所需要的操作,无非是`发送`、`接收`和`处理`,那么Combine就是实现这些过程的框架。
发送就是下文中的发布者(Publishers),接收就是下文中的订阅者(Subscribers),处理就是下文中的操作符(Operators)
为了让您了解 Apple 是如何致力于使用 Combine 进行反应式编程的,这里有一个简单的图表,显示了 Combine 在系统层次结构中的位置
各种系统框架,从 Foundation 一直到 SwiftUI,都依赖于Combine 并提供Combine 集成作为其更“传统”API 的替代方案。
Combine 基础
概括地说,Combine 中的三个关键要素是`发布者(Publishers)`、`操作符(Operators)`和`订阅者(subscribers)`。当然,还有其他成员,但最重要的是这三位。
我们可以将发布者、操作符和订阅者,想象为我们在网络购物中,商家发货期间参与的三位主人公。
发布者是商家,他们在我们购物后会发货,他是一个Publisher,负责发布。
操作符是快递小哥,他们会确认订单、装车、派送,他是一系列Operators的集合,负责处理。
订阅者是我们,我们通过快递小哥(Operators)的一系列操作,接收到了货,我们一般来说会“处理”这个收到的货物,比如使用,或是扔掉。
Publishers
发布者&#x