ControlNotificationStream.compactMap(_:)
Swift
- Python Unavailable
- Ruby Unavailable
- Lua Unavailable
- TypeScript Unavailable
- Rust Unavailable
- Go Unavailable
- Java Unavailable
- .NET Unavailable
- C++ Unavailable
- Swift
- Declared in
- ControlNotificationStream
- Package
- libtmux-swift
- compactMap(_:) ( transform : (Self.Element) async throws -> ElementOfResult? ) AsyncThrowingCompactMapSequence<Self, ElementOfResult> ( transform : (Self.Element) async -> ElementOfResult? ) AsyncCompactMapSequence<Self, ElementOfResult>methodasyncoverload2 overloads ¶methodasyncoverload2 overloads ¶compactMap(_:)
-
Inherited from
AsyncSequence.compactMap(_:)Creates an asynchronous sequence that maps an error-throwing closure over the base sequence’s elements, omitting results that don't return a value.
Use the
compactMap(_:)method to transform every element received from a base asynchronous sequence, while also discarding anynilresults from the closure. 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 thecompactMap(_:)method takes eachIntand looks up a correspondingStringfrom aromanNumeralDictdictionary. Since there is no key for4, the closure returnsnilin this case, whichcompactMap(_:)omits from the transformed asynchronous sequence. When the value is5, the closure throwsMyError, terminating the sequence.let romanNumeralDict: [Int: String] = [1: "I", 2: "II", 3: "III", 5: "V"]
do { let stream = Counter(howHigh: 5) .compactMap { (value) throws -> String? in if value == 5 { throw MyError() } return romanNumeralDict[value] } for try await numeral in stream { print(numeral, terminator: " ") } } catch { print("Error: \(error)") } // Prints "I II III Error: MyError() "
- Parameter transform: An error-throwing mapping closure.
transformaccepts an element of this sequence as its parameter and returns a transformed value of the same or of a different type. Iftransformthrows an error, the sequence ends. - Returns: An asynchronous sequence that contains, in order, the non-
nilelements produced by thetransformclosure. The sequence ends either when the base sequence ends or whentransformthrows an error.
- Parameter transform: An error-throwing mapping closure.
0 declared, 0 inherited