JS实现红绿灯

输了就是输了,这说明什么呀,小朋友,还得练

题目要求:

实现红绿灯,黄灯亮1s,红灯亮2s,绿灯亮3s,一直循环改变颜色。

解决方法:

三种方法:①setTimeout ②Promise + async/await

setTimeout方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function changeColor(color){
console.log('改变颜色为:',color);
}

function main(){
changeColor('yellow');
setTimeout(() => {
changeColor('red');
setTimeout(() => {
changeColor('green');
setTimeout(main, 3000);
}, 2000);
}, 1000);
}

main();

Promise + async/await方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function changeColor(color){
console.log("改变颜色为"+color);
}

function timer(color,delay){
return new Promise((resolve)=>{
changeColor(color);
setTimeout(()=>{
resolve();
},delay);
})

}
async function main(){
await timer('yellow',1000);
await timer('red',2000);
await timer('green',3000);
main();
}
main();
文章作者: qinwei
文章链接: https://qw-null.github.io/2022/08/15/JS实现红绿灯/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 QW's Blog