У меня есть метод, который создает таймер:
create(options: any) {
return timer(0, 1000).pipe(
map(() => {
return options;
}),
takeWhile(() => new Date() < options.finishDate)
);
}
Затем этот таймер я добавляю в массив this.timers
Наблюдаемых:
this.timers.push(this.create({finishDate: new Date()}))
Когда я объединяю наблюдателей:
this.mergeObserver = Observable.merge(this.timers).subscribe(x => {
console.log(x);
});
Я вижу, что console.log(x);
продолжает работать, несмотря на то, что таймер был закончен.
Почему? А как остановить все таймеры в массиве?
Я могу отписаться здесь:
Observable.merge(this.timers).subscribe(x => {
x.unsubscribe();
});
Но это не остановит Observable.merge
.