Angulaire 2: Impossible de lire la propriété 'se désabonner' undefined
Je suis en train de créer un ObservableTimer
que les tiques jusqu'à un certain nombre. J'ai déjà une logique de le faire, mais lorsque j'essaie de vous désabonner de ce que je reçois un "Cannot read property 'unsubscribe' of undefined"
d'erreurs.
Voici mon code
syncExpireTime() {
let route = AppSettings.API_ENDPOINT + 'Account/ExpireTime'
this.http.get(route, this.options).map(this.extractData).catch(this.handleError).subscribe(
res => {this.expireTime = +res},
error => console.log(error),
() => this.timerSub = TimerObservable.create(0,1000)
.takeWhile(x => x <= this.expireTime)
.subscribe(x => x == this.expireTime ? this.logout() : console.log(x))
)
}
Et puis ici, c'est ma déconnexion code. Je suis en train de vous désabonner à partir de l'expiration de la minuterie lorsque je me déconnecte,
logout() {
this.timerSub.unsubscribe()
this.router.navigate(['./login'])
}
- Êtes-vous sûr que le code permet d'affecter des timerSub est en cours d'exécution?
- Ainsi, l'observable est à vous désabonner à partir de lui-même?
- Oui. Les valeurs sont enregistrées sur ma console, donc l'expression au sein de la fonction subscribe est en cours d'exécution. Je ne pense pas que les observables en vous désinscrivant de lui-même.
Vous devez vous connecter pour publier un commentaire.
Il ya deux façons que vous pouvez essayer de résoudre ce problème.
ou vous pouvez essayer ngOnDestroy cycle de vie du crochet angulaire 2 qui est utilisé pour faire des chose quand nous voulons détruire notre composant
j'espère que cela aidera 🙂
j'avais été confrontés à la même exception. il serait mieux de vérifier "l'abonnement.fermé == false", avant d'appeler le désabonnement().
ngOnDestroy() {
Vous devriez appeler
unsubscribe
dansngOnDestroy
.