Avatar
TaskViewModel 側でとっておけばキャンセルできますね。 @MainActor final class ViewModel: ObservableObject { ... private var task: Task? func fetchFoo() { guard task = nil isButtonDisabled = true task = Task { [self] in defer { self.task = nil isButtonDisabled = false } ... // 非同期処理 } } func cancelFetchingFoo() { task.cancel() task = nil } }
t_naruhodo 1
t_kansha 1