On this page
ControlNotificationStream.map(_:)
- Declared in
- ControlNotificationStream
- Package
- libtmux-swift
- map(_:) ( transform : (Self.Element) async throws -> Transformed ) AsyncThrowingMapSequence<Self, Transformed> ( transform : (Self.Element) async -> Transformed ) AsyncMapSequence<Self, Transformed>
-
Creates an asynchronous sequence that maps the given error-throwing closure over the asynchronous sequence’s elements.
Use the
map(_:)method to transform every element received from a base asynchronous sequence. Typically, you use this to transform from one type of element to another.In this example, an asynchronous sequence called
CounterproducesIntvalues from1to5. The closure provided to themap(_:)method takes eachIntand looks up a correspondingStringfrom aromanNumeralDictdictionary. This means the outerfor await inloop iterates overStringinstances instead of the underlyingIntvalues thatCounterproduces. Also, the dictionary doesn't provide a key for4, and the closure throws an error for any key it can't look up, so receiving this value fromCounterends the modified sequence with an error.let romanNumeralDict: [Int: String] = [1: "I", 2: "II", 3: "III", 5: "V"]
do { let stream = Counter(howHigh: 5) .map { (value) throws -> String in guard let roman = romanNumeralDict[value] else { throw MyError() } return roman } for try await numeral in stream { print(numeral, terminator: " ") } } catch { print("Error: \(error)") } // Prints "I II III Error: MyError() "
- Parameter transform: A mapping closure.
transformaccepts an element of this sequence as its parameter and returns a transformed value of the same or of a different type.transformcan also throw an error, which ends the transformed sequence. - Returns: An asynchronous sequence that contains, in order, the elements produced by the
transformclosure.
- Parameter transform: A mapping closure.
0 declared, 0 inherited