上QQ阅读APP看书,第一时间看更新
The interval operator
In cases in which some items must be emitted at a fixed interval, the interval operator can be used instead of the timer operator. Its behavior is the same as the timer operator, wherein the same value is provided in duetime, a period parameter. This is how it is implemented. Its marble diagram is shown in the following figure:
Figure 4.9: The interval operator
Its prototype is as follows:
Observable.interval(period, scheduler=None)
The period parameter is the value, in milliseconds, of the period of item emission. This operator can be used as follows:
import datetime
ticks = Observable.interval(1000)
ticks.subscribe(
on_next=lambda i: print("tick {} at {}".format(
i, datetime.datetime.now())),
on_error=lambda e: print("error: {}".format(e)),
on_completed=lambda: print("completed")
)
The preceding example provides the same results as the second example of the timer operator, as follows:
tick 0 at 2018-06-23 22:07:32.488799 tick 1 at 2018-06-23 22:07:33.491213 tick 2 at 2018-06-23 22:07:34.493068 tick 3 at 2018-06-23 22:07:35.495030 tick 4 at 2018-06-23 22:07:36.500543
...