take
accepts
1
input stream,
an amount
amount
, the value is emittedamount
, the value is emitted and the stream immediately completesreturns
a new stream of at most amount
values
first
accepts
1
input stream,
a predicate
(optional)
returns a new stream emitting only the first value
In RxJS, first accepts an optional predicate. Learn more ➜
Read more about stream completion ➜
Question: Do ❚ take(1)
and ❚ first()
return the same stream of events?
Answer: Clearly, they return the same stream of events when the input stream emits at least one event. But the results may be different if the input stream emits no value before its completion (I’ll detail such edge cases in a future article).
❚ last
(seen in Episode 10) is the counterpart of ❚ first
:
Question: Are ❚ last
and ❚ first
outputs identical when the input stream emits only one value?
Answer: Not when the input stream emits only one value and completes later or never completes. ❚ first
and ❚ last
are not strictly “symmetrical”. Remember that ❚ last
has to wait for the ◉ complete
notification (read more about stream completion).
Given a stream of numbers, return a stream that emits only the first even number and completes immediately. For example, given the stream 1 1 1 0 1 0 0 1
, emit only the first 0
.
And what about emitting the last even number?
Freelance Developer Advocate. Motion graphics with code. JavaScript and Elm. cedricsoulas.com
Receive my latest news, product updates and programming visualizations. You can unsubscribe at any time.