Je me demande si c'est bon d'avoir un $timeout
qui s'annule après son exécution. En général, ce que je vois est des gens qui disent que vous devez annuler votre $timeout
« s dans le $destroy
comme ceci:
var timeout = $timeout(function() {
// stuff
});
$scope.$on("$destroy", function(){
$timeout.cancel(timeout);
});
Mais, est-il correct de le faire à la place:
var timeout = $timeout(function() {
// stuff
$timeout.cancel(timeout);
});
Le code «is it OK» que vous avez proposé tente d'annuler le délai d'attente après qu'il a déjà été exécuté. À ce stade, il n'y a rien à annuler. Le point d'annulation à l'intérieur du gestionnaire d'événements '$ destroy' serait d'empêcher l'exécution d'un délai d'expiration planifié après la destruction. – nnnnnn
Ce que vous faites n'a aucun sens, je pense que vous cherchez intervalle ou quelque chose comme ça, alors cela pourrait avoir du sens. Timeout exécutera votre fonction en un nombre donné de secondes, à l'intérieur de cette fonction, votre code est efficace, tout comme la ligne vide ou l'instruction de retour, puisque les secondes ont déjà passé - dans votre cas 0 secondes. – pegla
Merci @nnnnnn et pegla. Logique. – joeygrimes