arrow-fx-coroutines / arrow.fx.coroutines.stream / firstOrNull
fun <O>
Pull
<O,
Unit
>.firstOrNull(f: (O) ->
Boolean
):
Pull
<
Nothing
,
PullUncons1
<O>?>
Awaits the next available element where the predicate returns true.
suspend fun <O>
Stream
<O>.firstOrNull(): O?
Runs the first effect of this Stream, and returns null
if the stream emitted a value
and returns the value if emitted.
import arrow.fx.coroutines.stream.*
//sampleStart
suspend fun main(): Unit =
Stream.range(0..1000)
.firstOrNull()
.let(::println) // 0
//sampleEnd
This a terminal operator, meaning this functions suspend
s until the Stream finishes.
If any errors are raised while streaming, it’s thrown from this suspend
scope.
Do you like Arrow?
✖