如何设置抛出错误的分离任务
How to setup a detached task that throws an error
我正在尝试创建一个可能会引发错误的分离任务。这是我所拥有的综合示例。
@MainActor
var eventHandlerTask: Task<(), Never>? = nil
func eventsHandler(events: [BEIEvent]) async throws {
eventHandlerTask = Task.detached { [weak self] in
throw NSError()
}
}
Xcode 抱怨:从“@Sendable () throws -> Bool”类型的抛出函数到非抛出函数类型“@Sendable () async -> Bool”的无效转换
如何设置抛出的分离任务?
您已将 eventHandlerTask
定义为具有 Failure
类型的 Never
。所以它不会抛出错误。
但是,如果您将 Never
更改为 Error
,那么它可能会采取抛出错误的闭包:
var eventHandlerTask: Task<(), Error>?
我正在尝试创建一个可能会引发错误的分离任务。这是我所拥有的综合示例。
@MainActor
var eventHandlerTask: Task<(), Never>? = nil
func eventsHandler(events: [BEIEvent]) async throws {
eventHandlerTask = Task.detached { [weak self] in
throw NSError()
}
}
Xcode 抱怨:从“@Sendable () throws -> Bool”类型的抛出函数到非抛出函数类型“@Sendable () async -> Bool”的无效转换
如何设置抛出的分离任务?
您已将 eventHandlerTask
定义为具有 Failure
类型的 Never
。所以它不会抛出错误。
但是,如果您将 Never
更改为 Error
,那么它可能会采取抛出错误的闭包:
var eventHandlerTask: Task<(), Error>?