如何设置抛出错误的分离任务

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>?