Runs the given throwing operation asynchronously as part of a new top-level task on behalf of the current actor.
- iOS 13.0+
- macOS 10.15+
- tvOS 13.0+
- watchOS 6.0+
@discardableResult init(priority: TaskPriority? = nil, operation: @escaping () async throws -> Success)
The priority of the task. Pass
nilto use the priority from
The operation to perform.
Use this function when creating asynchronous work that operates on behalf of the synchronous function that calls it. Like
Task.detached(priority:operation:), this function creates a separate, top-level task. Unlike
detach(priority:operation:), the task created by
Task.init(priority:operation:) inherits the priority and actor context of the caller, so the operation is treated more like an asynchronous extension to the synchronous operation.
You need to keep a reference to the task if you want to cancel it by calling the
Task.cancel() method. Discarding your reference to a detached task doesn’t implicitly cancel that task, it only makes it impossible for you to explicitly cancel the task.