Angular2: setTimeout seulement appelé une fois
Je suis la mise en œuvre de la fonctionnalité dans Angular2 qui nécessite l'utilisation de setTimeout
.
Mon code:
public ngAfterViewInit(): void {
this.authenticate_loop();
}
private authenticate_loop() {
setTimeout (() => {
console.log("Hello from setTimeout");
}, 500)
}
setTimeout
est commencé par ngAfterViewInit
mais la boucle n'est exécuté qu'une seule fois, par exemple. "Bonjour fromsetTimeout" est imprimé uniquement une fois.
Question: Comment puis-je changer le code pour faire le setTimeout travail?
- Parce que délai ne s'exécute qu'une fois...
- vous pouvez voir blog.neilni.com/2016/03/27/settimeout-in-angular-2
- Modifier votre question angulaire 1 au lieu de angulaire 2, vous avez accepté la réponse qui utilise angulaire 1 services.
- Vrai, n'a pas remarqué. Bonne réponse a été acceptée.
Vous devez vous connecter pour publier un commentaire.
setTimeout
sera exécuté qu'une seule fois, sauf si vous créez un autresetTimeout
.Edit: Donc, pour être plus spécifique pour les différents angulaire versions:
Dans Angular2 vous n'êtes pas obligé d'utiliser $timeout /$intervalle de plus. Donc pour la question ici setInterval est la bonne solution.
Pour toute personne intéressée dans la réponse originale (ciblée Angular1) lire la suite de:
Utilisation $interval à l'intérieur d'un angular.js application.
Et si vous souhaitez utiliser setTimeout quelque part d'autre à l'intérieur d'un angular.js application il est mieux d'utiliser le $timeout service.
$timeout et $intervalle ont l'avantage, qu'ils gardent votre champ d'application mise à jour, qui setTimeout /setInterval ne le font pas.