The take operator emits only the first items of the source observable. This operator is the complementary operator of the skip operator that behaves the opposite way. The following is its marble diagram:
Figure 8.3: The take operator
The prototype of the take operator is the following:
Observable.take(self, count, scheduler=None)
The count parameter indicates how many items must be emitted before the output observable completes.
The following is an example of the take operator:
numbers = Observable.from_([1, 2, 3, 4])
numbers.take(2).subscribe(
on_next = lambda i: print("on_next {}".format(i)),
on_error = lambda e: print("on_error: {}".format(e)),
on_completed = lambda: print("on_completed")
)
The example gives the following result:
on_next 1 on_next 2 on_completed
The first two items of the numbers observable are emitted by the take operator, and then the Observable object completes, skipping the last two items.