第一章学习笔记
| 名称 |
作用 |
Just |
直接创建一个发布者 |
sink(_:_:) |
订阅发布者 |
assign(to:on:) |
能够将接收到的值分配给一个遵循了KVO协议的属性 |
assign(to:) |
assign(to:on:)的变种,不返回AnyCancellable,可以在某些场景解决循环引用,在它的内部管理生命周期,并在@Published属性释放时取消了订阅。 |
Future |
可以用异步来生成一个单一的结果,然后完成。 |
动态调整
// 用于初始的需求数
func receive(subscription: Subscription)
// 可以通过该方法进行动态调整需求数
func receive(_ input: Int) -> Subscribers.Demand
Subject
Subject可以向Combine的订阅者发送值。
| 名称 |
作用 |
| PassthroughSubject |
可以按需发布新值,会发布一个新值以及一个完成事件。 |
| CurrentValueSubject |
可以在任何时候向当前Subject询问其值,但也和其他Subject一样要用send发送完成或者失败事件。 |
| eraseToAnyPublisher() |
该操作符可以将具体的发布者类型擦除,变成一个AnyPublisher,转成AnyPublisher之后就不能使用send(),因为它没有。 |