Я работаю с 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 ()?Я не хочу добавлять больше логики, чтобы играть в настоящее время (это может измениться, однако).