跳转至

第一章学习笔记

名称 作用
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(),因为它没有。