當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Swift ThrowingTaskGroup nextResult()用法及代碼示例

實例方法

nextResult()

等待下一個子任務完成,並返回包含子任務返回的值或拋出的錯誤的結果。

聲明

mutating func nextResult() async -> Result<ChildTaskResult, Failure>?

返回值

包含子任務返回的值的 Result.success 值,或包含子任務拋出的錯誤的 Result.failure 值。

詳述

對該方法的連續調用返回的值按照任務 completed 的順序出現,而不是按照這些任務添加到任務組的順序出現。例如:


group.addTask { 1 }
group.addTask { 2 }


guard let result = await group.nextResult() else {
    return  // No task to wait on, which won't happen in this example.
}


switch result { 
case .success(let value): print(value)
case .failure(let error): print("Failure: \(error)")
}
// Prints either "2" or "1".

如果下一個子任務引發錯誤,並且您將該錯誤從此方法傳播到對ThrowingTaskGroup.withThrowingTaskGroup(of:returning:body:)方法,則該組中所有剩餘的子任務都被隱式取消。

可用版本

iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 ThrowingTaskGroup nextResult()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。