当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。