J'ai essayé à peu près tout ce que je peux trouver et je n'arrive pas à obtenir cet intervalle pour arrêter de faire le code dans l'abonnement. Suis-je en utilisant l'intervalle faux?Impossible d'arrêter l'intervalle Observable
var subject = new Subject();
var interval = Observable.interval(this.settings.timing * 1000);
var subscription = interval
.takeUntil(subject)
.subscribe(t => {
console.log('pushing new item');
this.activeItems[0].contentLeaving = true;
setTimeout(()=>{
this.activeItems[0].imageLeaving = true;
setTimeout(()=>{
this.activeItems.push(this.activeItems.shift());
setTimeout(()=>{
this.activeItems[1].contentLeaving = false;
this.activeItems[1].imageLeaving = false;
},510);
},510);
},510);
});
this.moduleProps.intervals.push(subject);
Dans mon ngOnDestroy
this.moduleProps.intervals.forEach((i)=>{
i.complete();
});
Mais après cela arrive, je vois encore la déclaration de journal de la console en disant « pousser nouvel élément » comme si elle est toujours en cours d'exécution sur mon intervalle.
Vous pouvez appeler 'subscription.unsubcscribe()' 'l'intérieur subscribe()'. Ou peut-être que je ne comprends pas ce que vous voulez faire ... – martin