So implementieren Sie Ampeln in JavaScript: 1. Verwenden Sie setTimeout und Rekursion, um Farben in einer Schleife zu ändern. 2. Verwenden Sie Promise und schreiben Sie die nächste Farbänderung ein. 3. Verwenden Sie Async Wait und While, um Ampeleffekte zu implementieren.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.
Wie implementiert man Ampeln in JavaScript?
JavaScript zum Implementieren von Ampeln
Verwenden Sie setTimeout, Promise und Async Wait auf drei Arten, um Ampelcode zu implementieren: rotes Licht für 2 Sekunden, gelbes Licht für 1 Sekunde, grünes Licht für 3 Sekunden und Farbwechsel in einer Schleife. Die Methode zum Ändern der Farbe besteht einfach darin, die Farbe auszudrucken.
setTimeout-Implementierung
Die Verwendung von setTimeout ist die einfachste Möglichkeit, es zu implementieren. Der Code lautet wie folgt und verwendet Rekursion, um Farben in einer Schleife zu ändern.
function changeColor(color) { console.log('traffic-light ', color); } function main() { changeColor('red'); setTimeout(()=>{ changeColor('yellow'); setTimeout(() => { changeColor('green'); setTimeout(main, 2000); }, 1000); }, 2000); } main();
Promise-Implementierung
Schreiben Sie dann mit Promise die nächste Farbänderung hinein und verwenden Sie schließlich die Rekursion, um die Schleife abzuschließen.
function sleep(duration){ return new Promise(resolve => { setTimeout(resolve, duration); }) } function changeColor(duration,color){ return new Promise(resolve => { console.log('traffic-light ', color); sleep(duration).then(resolve); }) } function main() { return new Promise(resolve => { changeColor(2000, 'red').then(() => { changeColor(1000, 'yellow').then(() => { changeColor(3000, 'green').then(() => { main(); }) }) }) }) }main();
Async-Await-Implementierung
Die Verwendung von Async-Await kann eine Reihe von .then.then.then in Promise vermeiden und erfordert keine Rekursion mehr. Verwenden Sie while, um Schleifen zu implementieren.
function sleep(duration) { return new Promise(resolve => { setTimeout(resolve, duration); }) } async function changeColor(color, duration) { console.log('traffic-light ', color); await sleep(duration); } async function main() { while (true) { await changeColor('red', 2000); await changeColor('yellow', 1000); await changeColor('green', 3000); } } main();
Empfohlenes Lernen: „JavaScript-Grundlagen-Tutorial“
Das obige ist der detaillierte Inhalt vonSo implementieren Sie Ampeln in Javascript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!