我有一个特定的情况,我正在使用 RxJS 间隔,但在任何给定时刻我可能需要停止该间隔。我以为有一些简单的东西,比如 cancel() 或 stop()。与clearTimeout类似。一旦进行就可以停止间隔吗?如果没有,另一种方法是什么。
基本上我有一个正在逐步遍历的大数组。但可能会发生一些外部事件,导致有必要停止该步骤并继续执行新任务。我希望这是我在文档中缺少的简单内容。谢谢
最佳答案
This is possible to stop an interval once it's going?
当其他一些可观察对象发出时,您可以使用 .takeUntil
运算符来完成一个可观察对象。当然,您需要将其他可观察对象设置为以对您有用的方式发出值,但这里有一个在 5 秒后停止间隔的示例:
Rx.Observable.interval(100)
.takeUntil(Rx.Observable.timer(5000))
.subscribe(val => console.log(val));
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.5.2/Rx.min.js"></script>
关于javascript - 如何在 RxJS 中停止 Observable 上的间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46963486/