The all operator indicates whether all items emitted in the source observable meet some criteria. The following figure shows the marble diagram of this operator:
Figure 9.26: The all operator
Its prototype is the following:
Observable.all(self, predicate)
Here, the predicate parameter is a function called for each item emitted by the source observable. If the predicate function returns True for all items emitted on the source observable, then the operator emits a True item. Otherwise, it emits a False item.
Here is an example of the all operator:
numbers = Observable.from_([11, 12, 13, 14])
numbers.all(lambda i: i > 10).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:
Since the values of all items emitted on the numbers observable are more than 10, the all operator emits a True item.