Appel de la méthode formulaire de setInterval() provoquant exception
Je voudrais appeler la fonction de setInterval(). Voici l'idée:
class Greeter {
element: HTMLElement;
span: HTMLElement;
timerToken: number;
constructor(element: HTMLElement) {
this.element = element;
this.element.innerHTML += "The time is: ";
this.span = document.createElement('span');
this.element.appendChild(this.span);
this.span.innerText = new Date().toUTCString();
//this.element.style.cssText = "-webkit-transform:rotate(7deg)";
//this.element.style.transition = "-webkit-transform: rotate(180deg)";
}
start() {
this.timerToken = setInterval(this.runningLoop(this.element), 500);
}
stop() {
clearTimeout(this.timerToken);
}
runningLoop(element: HTMLElement) {
this.element.style.cssText = "-webkit-transform:rotate(7deg)";
}
}
window.onload = () => {
var el = document.getElementById('content');
var greeter = new Greeter(el);
greeter.start();
};
Dans ce cas j'obtiens une exception:
Exception non gérée à la ligne 13, colonne 9. Erreur d'exécution Microsoft JScript: argument non Valide.
J'ai donc essayé comme suit :
this.timerToken = setInterval(function () { this.runningLoop(this.element) }.bind, 500);
Pas une exception, mais rien ne se passe..
Des idées ?
OriginalL'auteur Jviaches | 2014-06-29
Vous devez vous connecter pour publier un commentaire.
Ci-dessus appelle
this.runningLoop
avant de passer àsetInterval
,setInterval
s'attend à une fonction, mais reçoitundefined
. Placer l'appel en flèche de la fonction...Et puisque vous n'êtes pas en utilisant l'argument de l'élément dans
runningLoop
, vous pouvez supprimer l'argument et de la transmettre à la méthode desetInterval
...attribuer setInterval à une variable. et puis fenêtre.clearInterval(variableName);
setInterval solution d'arrêt lien : stackoverflow.com/questions/109086/...
OriginalL'auteur Anthony Chu
Ce sera une boucle dans le temps que vous voulez:
setInterval(() => fonction(), le temps en millisecondes);
Maintenant, si vous voulez vous arrêter à chaque fois! Écrire un var avant de l'intervalle:
Déclarer sur le haut de votre fichier TS:
varInterval: tout;
c'.varInterval = setInterval(() => fonction(), le temps en millisecondes);
Vous pouvez appeler la méthode pour arrêter comme ceci:
clearInterval(ce.varInterval);
Ce travail pour moi!
OriginalL'auteur Carlos Galeano