# ControlNotificationStream.first(where:)

- **Module:** ControlNotificationStream
- **Package:** libtmux-swift
- **Language:** Swift
- **Kind:** method
- **Page:** https://libtmux.org/reference/swift/controlnotificationstream-first(where-)/

```
ControlNotificationStream.first(where:)(where: (Self.Element) async throws -> Bool) -> Self.Element?
```

Returns the first element of the sequence that satisfies the given predicate.

In this example, an asynchronous sequence called `Counter` produces `Int`
values from `1` to `10`. The `first(where:)` method returns the first
member of the sequence that's evenly divisible by both `2` and `3`.

    let divisibleBy2And3 = await Counter(howHigh: 10)
        .first { $0 % 2 == 0 && $0 % 3 == 0 }
    print(divisibleBy2And3 ?? "none")
    // Prints "6"

The predicate executes each time the asynchronous sequence produces an
element, until either the predicate finds a match or the sequence ends.

- Parameter predicate: A closure that takes an element of the asynchronous
 sequence as its argument and returns a Boolean value that indicates
 whether the element is a match.
- Returns: The first element of the sequence that satisfies `predicate`,
  or `nil` if there is no element that satisfies `predicate`.

## Raises

- `Bool`
