首页 > 解决方案 > 如何避免 Angular2+ 中的重复服务

问题描述

我正在使用 Angular 7 和 Spotify WEB API,并提供了一项服务,将所有播放和监视播放状态逻辑保存在一个地方。

为了简单起见,我会拿出一些逻辑。

该服务被调用:

  play() {
    this._service.playTracks(this.tracks);
    console.log('Playing mock track list');
    this.monitorPlayback();
  }

它播放一系列歌曲,然后启动监控。

  monitorPlayback () {
    interval(15000).subscribe(() => {
      monitoring logic here;
    });

这个函数获取用户当前的播放状态,用它做一些事情——这对这个问题并不重要。

现在这是我的问题。如果我多次排队歌曲 - 整个事情(显然)被触发两次。所以我不是在 15 秒内轮询一次,而是两次。如何杀死已经启动的 monitorPlayback() 实例?我不想在当前播放时添加更多逻辑(但是可能会改变)。

标签: javascriptangular

解决方案


推荐阅读