angular2 - 路径更改时终止可观察间隔的最佳方法

Val*_*sen 7 observable typescript angular

我使用一个可观察的间隔在某个组件中每五秒执行一个特定的功能,与我的路由配置中的路径相关.

Observable.interval(5000).subscribe(res => {
    // Something happens here
});
Run Code Online (Sandbox Code Playgroud)

但是我希望在路径更改时终止间隔.现在它继续执行任务......

做这个的最好方式是什么?

Thi*_*ier 8

在这种情况下,您可以取消订阅订阅(订阅方法的返回对象):

var subscription = Observable.interval(5000).subscribe(res => {
    // Something happens here
});

// to be called when the route changes
subscription.unsubscribe();
Run Code Online (Sandbox Code Playgroud)

因为可观察的是冷的并且没有更多的订阅,所以可观察的将被处置......

您可以利用组件中的"routerOnDesactivate"挂钩方法取消订阅.当您将路由组件留在路由上下文中时,它会让您知道.

有关详细信息,请参阅此链接: