Swift async cancel like URLSession

问题描述 投票:0回答:1

当我将回调函数与 URLSession 一起使用时,我可以使用 URLSessionDataTask 来取消任务

let task = URLSession.shared.dataTask(with: URLRequest(url: URL(string: "")!)) { data, response, error in
    // handle response
}
task.cancel()

当我在 URLSession 中使用 async func 时,没有任何取消方法,如何在它完成之前取消它

try await URLSession.shared.datafrom(from: URL(string: "")!)

我找不到 URLSession 异步函数的取消方法,我可以像这样在任务完成后检查任务取消

try await URLSession.shared.data(from: URL(string: ""))
try Task.checkCancellation()

如何在完成之前取消 URLSessionTask

swift asynchronous nsurlsessiondatatask
1个回答
1
投票

您可以取消整个操作

let task = Task {
    try await URLSession.shared.data(from: URL(string: ""))
}
task.cancel()

URLSessionDataTask此时应该取消

© www.soinside.com 2019 - 2024. All rights reserved.