Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk melaksanakan lampu isyarat dalam javascript

Bagaimana untuk melaksanakan lampu isyarat dalam javascript

藏色散人
藏色散人asal
2021-11-16 14:14:375758semak imbas

Cara melaksanakan lampu isyarat dalam JavaScript: 1. Gunakan setTimeout dan rekursi untuk menukar warna secara kitaran 2. Gunakan Promise dan tulis perubahan warna seterusnya pada masa itu; .

Bagaimana untuk melaksanakan lampu isyarat dalam javascript

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.

Bagaimana untuk melaksanakan lampu isyarat dalam JavaScript?

JavaScript melaksanakan lampu isyarat

Gunakan setTimeout, Promise dan async menunggu dalam tiga cara untuk melaksanakan kod lampu isyarat: lampu merah selama 2 saat, lampu kuning selama 1 saat, lampu hijau selama 3 saat, bergelung untuk menukar warna. Kaedah menukar warna hanyalah dengan mencetak warna.

pelaksanaan setTimeout

Menggunakan setTimeout ialah cara paling asas untuk melaksanakannya Kod adalah seperti berikut, menggunakan rekursi untuk menukar warna dalam gelung.

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

Pelaksanaan janji

Gunakan Promise untuk menulis perubahan warna seterusnya pada masa itu, dan akhirnya gunakan rekursi untuk melengkapkan gelung.

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 menunggu pelaksanaan

Menggunakan async await boleh mengelakkan siri .then.then.then Promise, dan tidak lagi memerlukan pengulangan, hanya gunakan sementara Realisasikan kitaran.

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();

Disyorkan kajian: "Tutorial Asas JavaScript"

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan lampu isyarat dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn