Как избежать дублирования сервиса в Angular2 + - PullRequest
0 голосов
/ 06 февраля 2019

Я работаю с Angular 7 и Spotify WEB API и создал сервис, позволяющий хранить всю логику воспроизведения и отслеживать состояние воспроизведения в одном месте.

Чтобы упростить эту задачу, я возьму некоторую логикуout.

Служба вызывается следующим образом:

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

, который воспроизводит массив песен и затем запускает мониторинг.

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

Эта функция ПОЛУЧИТ текущее воспроизведениесостояние пользователя, чтобы сделать что-то с ним - что не имеет значения для этого вопроса.

Теперь вот моя проблема.Если я ставлю песни в очередь несколько раз - все это (очевидно) запускается дважды.Так что я опрашиваю не раз в 15 секунд, а дважды.Как убить уже инициированный экземпляр monitorPlayback ()?Я не хочу добавлять больше логики, чтобы играть в настоящее время (это может измениться, однако).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...