NEWS
[Gelöst] Ungewollter mehrfach Aufruf von schedule()
-
Hallo, habe in der Suche nichts zum Thema gefunden.
Wenn ich nachfolgendes Skript Aufrufe, wird im Log über 20 mal die Testausgabe "in Funktion f" ausgegeben.
Also wird wohl auch die ganze Funktion zigmal aufgerufen.
var cl_sched = null; function f() { clearSchedule(cl_sched); console.log("in Funktion f"); cl_sched = schedule("*/1 * * * *", f); } cl_sched = schedule("*/1 * * * *", f);Was mache ich falsch?
-
-
Hallo pibroker,
lass die Funktion doch im gewünschten Intervall dauernd laufen und bau dort die Bedingung ein.
Nur wenn die Bedingung erfüllt ist, macht die Funktion etwas.
Das ist letztendlich resourcenschonender, als ständiges Ein- und Ausschalten des Callbacks.
Tschau
Uwe
-
Hallo pibroker,
lass die Funktion doch im gewünschten Intervall dauernd laufen und bau dort die Bedingung ein.
Nur wenn die Bedingung erfüllt ist, macht die Funktion etwas.
Das ist letztendlich resourcenschonender, als ständiges Ein- und Ausschalten des Callbacks.
Tschau
Uwe `
Danke für die Hilfe. :) -
Was mache ich falsch? `
Du missbrauchst einen Schedule wenn du ein Timeout verwenden könntest:function f() { console.log("in Funktion f"); // Wenn die Funktion wieder aufgerufen werden soll setTimeout(f, 60000); // 1 Minute-Intervall } setTimeout(f, 60000); // 1 Minute-Intervall // alternativ sofort: f();Oder eben einmalig einen Schedule starten und bei jedem Aufruf von f prüfen, ob eine Bedingung erfüllt ist.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden