Combine框架:自定义操作符与API包装实践
1. 自定义操作符实现
1.1 实现自定义dump操作符
在创建Combine管道时,通常会从发布者开始,连接一系列内置操作符处理发布者发出的事件,管道末尾是接收事件的订阅者。操作符本质上是创建其他发布者和订阅者的函数,用于处理来自上游发布者的事件。
我们可以通过扩展 Publisher 来创建自定义操作符。下面实现一个简单的 dump 操作符,使用Swift的 dump() 函数检查Combine管道中的事件:
extension Publisher {
func dump() -> AnyPublisher<Self.Output, Self.Failure> {
handleEvents(receiveOutput: { value in
Swift.dump(value)
})
.eraseToAnyPublisher()
}
}
使用示例:
Just(Date())
.dump()
// 输出示例:
// ▿ 2022-03-02 09:38:49 +0000
// - timeIntervalSinceReferenceDate: 667906729.659255
超级会员免费看
订阅专栏 解锁全文
34

被折叠的 条评论
为什么被折叠?



