🎂 Houdini 150   🚚 FREE FEDEX SHIPPING from 397 USD   🌎 WORLDWIDE SHIPPING for 25 USD

Zeitschaltuhren

Anleitung

Meistens müssen Sie einige Dinge in regelmäßigen Abständen oder nach einer gewissen Zeit erledigen, oder Sie möchten zwischen zwei Anweisungen warten.

MagiScript hat mehrere Funktionen, die Sie unterstützen.

Warten

Dieser grundlegende Aufruf fügt eine Verzögerung zu Ihrem Code hinzu. Verwenden Sie ihn mit Bedacht, da er die Skript-Engine blockiert, so dass kein anderer Code ausgeführt wird, bis er endet (z. B. werden keine Tastendrücke oder Timeouts ausgeführt).

Aus diesem Grund empfehlen wir, es überhaupt nicht zu verwenden. Aber für die Erfahrung mit MagiScript ist es OK zu verwenden, fügen Sie nur nicht eine lange Wartezeit.

Es handelt sich um eine einfache Funktion mit einem Parameter:

wait(100); // wait 100 milliseconds (0.1 seconds)

Sie können zum Beispiel diesen Code ausprobieren. Die LED leuchtet 1 Sekunde lang grün, aber dies läuft im Hintergrund und die Codeausführung geht weiter. Die Wait-Funktion wartet dann 2 Sekunden. Die LED schaltet sich nach 1 Sekunde aus und bleibt eine Sekunde lang aus, bis die Wartefunktion beendet wird. Dann wird sie gelb und bleibt an.

function main() {
    atom.led('g='); // green LED for 1 second
    wait(2000);
    atom.led('y*'); // yellow infinitely
}

Lesen Sie weiter unten über die Timer, aber dies ist die Alternative, die wir empfehlen. Es ist schwieriger zu lesen, mehr Code, aber MagiScript-Ereignisse werden überhaupt nicht blockiert.

function main() {
    atom.led('g='); // green LED for 1 second
    setTimeout(function() {
        atom.led('y*'); // yellow infinitely
    }, 2000);
    
}

Zeitschaltuhren

Timer dienen dazu, Codeteile periodisch oder nach einer bestimmten Zeit auszuführen. Sie können mit 16 Timern gleichzeitig arbeiten. Diese Funktionen sind paarweise vorhanden:

  • setTimeout und clearTimeout
  • setIntervall und clearIntervall

Mit setTimeout wird ein Code einmalig ausgelöst, mit setInterval wird der Code unendlich oft ausgelöst. Der Befehl clearTimeout verhindert, dass der Timer den Code auslöst, wenn er vor der Ausführung aufgerufen wird. Mit clearInterval wird der Timer angehalten, so dass er den Code nicht erneut auslöst.

Ihre Verwendung ist einfach:

setTimeout(function() { console.log('hello'); }, 1000);
setInterval(function() { console.log('hey'); }, 100);

Sowohl setTimeout als auch setInterval benötigen zwei Argumente, eine Funktion und ein Intervall in Millisekunden.

Es gibt mindestens drei Möglichkeiten, eine Funktion zu übergeben. Sie können eine "anonyme" Funktion wie im obigen Code übergeben, Sie können eine "Pfeilfunktion" übergeben, und Sie können den Namen einer zuvor oder später deklarierten Funktion übergeben:

// anonymous funnction
setTimeout(function() { console.log('howdy'); }, 1000);
// arrow function
setTimeout(() => { console.log('cheers'); }, 1000);
// reference
setTimeout(log, 1000);
function log() { console.log('hiya'); }

Sowohl die Funktionen setTimeout als auch setInterval geben eine Zahl zurück. Sie können diese verwenden, um sie abzubrechen:

let timeoutId = setTimeout(() => console.log('I will never run'), 1000);
clearTimeout(timeoutId);

Alles in allem funktionieren sie ganz ähnlich wie JavaScript. Wenn Sie nach Ideen suchen, wie Sie sie einsetzen können, können die Beispiele Atom Time und Atom Level Ihnen einige Hinweise geben.

ankreuzen