Avatar
Rxと同じ気分になってこういうの作ってましたね class TaskDisposer { var cancells: [() -> ()] = [] deinit { cancells.forEach { $0() } } func add<S, F: Error>(_ task: Task<S, F>) { cancells.append(task.cancel) } } extension Task { func disposed(by disposer: TaskDisposer) { disposer.add(self) } }