Instance Method インスタンスメソッド

nextResult()

Wait for the next child task to complete, and return a result containing either the value that the child task returned or the error that it threw. 次の子タスクが完了するのを待機します、そして子タスクが返した値またはそれがスローしたエラーのどちらかを含んでいる値を返します。

Declaration 宣言

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

Return Value 戻り値

A Result.success value containing the value that the child task returned, or a Result.failure value containing the error that the child task threw. 子タスクが返した値を含んでいるResult.success値、または子タスクがスローしたエラーを含んでいるResult.failure値。

Discussion 解説

The values returned by successive calls to this method appear in the order that the tasks completed, not in the order that those tasks were added to the task group. For example: このメソッドへの連続した呼び出しによって返される値それらは、タスクそれらが完了した順に現れます、タスクがタスクグループに加えられた順にではなく。例えば:


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".

If the next child task throws an error and you propagate that error from this method out of the body of a call to the ThrowingTaskGroup.withThrowingTaskGroup(of:returning:body:) method, then all remaining child tasks in that group are implicitly canceled.

See Also 参照

Accessing Individual Results 個々の結果にアクセスする

Related Documentation 関連文書

next()