Es gibt eine Möglichkeit, die setInterval
Methode von javascript, um die Methode sofort auszuführen, und wird dann mit dem Timer ausgeführt
Antworten
Zu viele Anzeigen?Hier ist eine einfache Version für Anfänger, die nicht so viel herumprobieren muss. Sie deklariert lediglich die Funktion, ruft sie auf und startet dann das Intervall. Das war's.
//Declare your function here
function My_Function(){
console.log("foo");
}
//Call the function first
My_Function();
//Set the interval
var interval = window.setInterval( My_Function, 500 );
Ich schlage vor, die Funktionen in der folgenden Reihenfolge aufzurufen
var _timer = setInterval(foo, delay, params);
foo(params)
Sie können auch die _timer
zum foo, wenn Sie das wollen clearInterval(_timer)
unter einer bestimmten Bedingung
var _timer = setInterval(function() { foo(_timer, params) }, delay);
foo(_timer, params);
Es gibt ein praktisches npm-Paket namens erstesIntervall (um ganz offen zu sein, es ist meins).
Viele der Beispiele hier beinhalten keine Parameterbehandlung, und das Ändern des Standardverhaltens von setInterval
in jedem großen Projekt ist schlecht. Aus den Unterlagen:
Dieses Muster
setInterval(callback, 1000, p1, p2);
callback(p1, p2);
ist identisch mit
firstInterval(callback, 1000, p1, p2);
Wenn Sie die alte Schule des Browsers bevorzugen und die Abhängigkeit nicht wollen, ist es ein einfaches Ausschneiden und Einfügen von den Code.
Denn jemand muss das Äußere mitbringen this
als ob es eine Pfeilfunktion wäre.
(function f() {
this.emit("...");
setTimeout(f.bind(this), 1000);
}).bind(this)();
Wenn Sie der oben beschriebene Müll stört, können Sie stattdessen einen Verschluss machen.
(that => {
(function f() {
that.emit("...");
setTimeout(f, 1000);
})();
})(this);
Oder erwägen Sie vielleicht die Verwendung von die @autobind
Tapezierer abhängig von Ihrem Code.