javascript - 如何在 RxJS 中停止 Observable 上的间隔

标签 javascript rxjs observable rxjs5

我有一个特定的情况,我正在使用 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/

相关文章:

android - 如何将 Realm 与 RxJava2 一起使用

javascript - 如何在点击时添加事件类并防止子菜单向上滑动

javascript - ajax.load 之后访问 DOM 元素

angular - NGRX 影响如何将参数传递给 withLatestFrom 操作符

angular - 使用 RXJS 映射返回数组/对象而不是可观察对象

angular - RxJs zip 运算符,检查哪一个抛出错误并根据条件继续?

javascript - 为什么我的图片不会出现?

javascript - 根据下拉选择自动显示数据

java - 观察者、可观察和可运行。为什么同步块(synchronized block)丢失了监视器?

swift - 如何在 Reactive Extensions 中组合两个 observables 以便对结果进行分页?