rx.interval 和 rx.timer 没有产生结果

rx.interval and rx.timer not producing results

我目前正在尝试学习使用 RxPy 但 运行 进入以下。我尝试同时使用 rx.timerrx.interval 但都没有输出。

我的代码:

print("python version = {}".format(sys.version))    # 3.8.10
print("rx version     = {}".format(rx.__version__)) # 3.2.0

rx.timer(1.0, 0.5).subscribe(
    on_next=lambda i: print("tick {}".format(i)),
    on_error=lambda e: print("error: {}".format(e)),
    on_completed=lambda: print("completed")
)

print("try something else...")

rx.interval(1.0).subscribe(
    on_next=lambda i: print("tick {}".format(i)),
    on_error=lambda e: print("error: {}".format(e)),
    on_completed=lambda: print("completed")
)

print("try something completely else...")

rx.interval(.01).subscribe(on_next=lambda i: print(i))

产生这个结果:

python version = 3.8.10 (default, Sep 28 2021, 16:10:42) 
rx version     = 3.2.0
try something else...
try something completely else...

我在这里错过了什么?

rx.intervalrx.timer 仅在代码 运行 足够长,足以让相应的时间间隔过去时才产生结果。

在您的示例中,您设置了计时器,但随后代码立即完成,因此您甚至看不到第一个结果。

在最简单的情况下,在最后调用 time.sleep 让代码 运行 多等几秒钟并观察输出。当然,如果你的程序最终会做一些有用的事情,那么就没有必要添加一个人为的等待时间。