An error-throwing mapping closure. transform
accepts an element of this sequence as its parameter and returns an Async
. If transform
throws an error, the sequence ends.
あるエラースローマッピングクロージャ。transform
はこのシーケンスのある要素をそれのパラメータとして受け取り、そしてAsync
を返します。transform
がエラーをスローするならば、そのシーケンスは終わります。
flatMap(_:)
Availability
- iOS 13.0+
- iPadOS 13.0+
- macOS 10.15+
- Mac Catalyst 15.0+
- tvOS 13.0+
- watchOS 6.0+
- Xcode 13.0+
Technology
- Swift Standard Library Swift標準ライブラリ
Declaration 宣言
func flatMap<SegmentOfResult >(_ transform: @escaping (Base.Element
) async throws -> SegmentOfResult ) -> AsyncThrowingFlatMapSequence
<AsyncThrowingDropWhileSequence
<Base>, SegmentOfResult > where SegmentOfResult : AsyncSequence
Parameters パラメータ
transform
Sequence Sequence
Return Value 戻り値
A single, flattened asynchronous sequence that contains all elements in all the asychronous sequences produced by transform
. The sequence ends either when the the last sequence created from the last element from base sequence ends, or when transform
throws an error.
ある単一の、平坦にされた非同期シーケンス、それはtransform
によって生み出される全ての非同期シーケンスの中の全ての要素を含みます。シーケンスは、基底シーケンスからの最後の要素から作成された最後のシーケンスが終わる時、またはtransform
がエラーをスローする時のどちらかに終わります。
Discussion 解説
Use this method to receive a single-level asynchronous sequence when your transformation produces an asynchronous sequence for each element. このメソッドを使って、単一階層の非同期シーケンスを受け取ってください、あなたの変換が各要素に対してひとつの非同期シーケンスを生み出す時は。
In this example, an asynchronous sequence called Counter
produces Int
values from 1
to 5
. The transforming closure takes the received Int
and returns a new Counter
that counts that high. For example, when the transform receives 3
from the base sequence, it creates a new Counter
that produces the values 1
, 2
, and 3
. The flat
method “flattens” the resulting sequence-of-sequences into a single Async
. However, when the closure receives 4
, it throws an error, terminating the sequence.
この例において、Counter
と呼ばれる非同期シーケンスは、Int
値を1
から5
まで生み出します。変換クロージャは、その受け取ったInt
をとり、そしてその高さを数える新しいCounter
を返します。例えば、変換が3
を基底シーケンスから受け取る場合、それは新しいCounter
を作成します、そしてそれが値1
、2
、そして3
を生み出します。flat
メソッドは、結果のシーケンスのシーケンスを単一のAsync
へと “平坦にします”。しかしながら、クロージャが4
を受け取る場合、それはシーケンスを終端して、エラーをスローします。