Maison > interface Web > js tutoriel > le corps du texte

Comment implémenter des feux de circulation en javascript

藏色散人
Libérer: 2021-11-16 14:14:37
original
5776 Les gens l'ont consulté

Comment implémenter les feux de signalisation en JavaScript : 1. Utilisez setTimeout et la récursivité pour changer les couleurs dans une boucle ; 2. Utilisez Promise et écrivez le prochain changement de couleur dans then ; 3. Utilisez async wait et while pour implémenter les effets de feux de signalisation.

Comment implémenter des feux de circulation en javascript

L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.

Comment implémenter des feux tricolores en JavaScript ?

JavaScript pour implémenter les feux de circulation

Utilisez setTimeout, Promise et async wait de trois manières pour implémenter le code des feux de circulation : feu rouge pendant 2 secondes, feu jaune pendant 1 seconde, feu vert pendant 3 secondes et changement de couleur en boucle. La méthode pour changer la couleur consiste simplement à imprimer la couleur.

Implémentation de setTimeout

 L'utilisation de setTimeout est le moyen le plus basique de l'implémenter. Le code est le suivant, en utilisant la récursivité pour changer les couleurs dans une boucle.

function changeColor(color) {
console.log('traffic-light ', color);
}
function main() {
changeColor('red');
setTimeout(()=>{
changeColor('yellow');
setTimeout(() => {
changeColor('green');
setTimeout(main, 2000);
}, 1000);
}, 2000);
}
main();
Copier après la connexion

Implémentation de la promesse

 À l'aide de Promise, écrivez ensuite le prochain changement de couleur et enfin utilisez la récursivité pour terminer la boucle.

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();
Copier après la connexion

implémentation de l'attente asynchrone

 L'utilisation de l'attente asynchrone peut éviter une série de .then.then.then dans Promise et ne nécessite plus de récursivité. Utilisez while pour implémenter des boucles.

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();
Copier après la connexion

Apprentissage recommandé : "Tutoriel sur les bases de JavaScript"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal