Swift异步编程:AsyncStream、异步序列与Actor边界处理
1. 引入AsyncStream
当我们注册特定的通知时,可能会收到零个、一个或多个符合条件的通知。这意味着我们不能使用之前章节中基于闭包的方法替换为仅接收一个值的异步调用策略,因为 CheckedContinuation 只能调用一次 resume() ,而本节中的延续器可能使用一次、多次或根本不使用。
这里引入 AsyncStream ,它是一种异步类型,可以传递给定类型的零个或多个值。
1.1 错误尝试
在 NotificationReceiver 中有 receiveNumbers 方法:
Smore/Controllers/Notifications/NotificationReceiver.swift
func receiveNumbers(with completion: @escaping (Int) -> Void) { // ...
我们可以使用Xcode的异步替代重构功能将其重构为异步方法:
1. 选择 receiveNumbers ,按住 Control 键点击,选择 Refactor > Add Async Alternative 。
重构后的代码如下:
超级会员免费看
订阅专栏 解锁全文
760

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



