The amb operator emits items from the first observable of two that emits an item first. The following figure shows the marble diagram of this operator:
Figure 9.27: The amb operator
Its prototype is the following:
Observable.amb(self, right_source)
The right_source parameter is the second observable to watch.
Here is an example of the amb operator:
first = Subject()
second = Subject()
first.amb(second).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")
)
first.on_next(1)
second.on_next(2)
first.on_completed()
In this example, the first observable emits an item before the second observable.
This example gives the following result: