深入理解 Swift 中的任务取消与返回值
1. 任务取消的基础概念
在开发过程中,有时我们需要取消正在运行的任务。例如,用户发起一个涉及大量数据检索的搜索,之后失去兴趣并导航到应用的其他部分,这时就应该取消待处理的请求。在当前的应用中,如果多次按下按钮,也应该取消正在运行的任务。
为了实现任务的取消,首先要获取任务的句柄。当前的顶级任务类型为 Task<Void, Never> ,我们创建一个名为 nextTask 的可选属性来持有这个任务:
class EntryController: ObservableObject {
@Published private(set) var plainEntry: Entry?
@Published private(set) var filledEntry: Entry?
@Published private(set) var comparison: Comparison?
private let plain = NumberVendor(delay: 2.0)
private let filled = NumberVendor(delay: 1.5)
private var nextTask: Task<Void, Never>?
}
每次调用 nextPair() 方法时,将任务赋值给 nextTask :
超级会员免费看
订阅专栏 解锁全文

43

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



