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

Bagaimana untuk melaksanakan lampu isyarat dalam javascript

藏色散人
Lepaskan: 2021-11-16 14:14:37
asal
5811 orang telah melayarinya

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();
Salin selepas log masuk

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();
Salin selepas log masuk

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();
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan