- 作者:老汪软件技巧
- 发表时间:2024-09-04 15:02
- 浏览量:
前言
现实生活中的红绿灯就是红灯、绿灯、黄灯之间不停的切换,这个时候可能就会想到定时器,将定时器嵌套,设置相应的时间,那么接下来我们用代码去实现吧~
正文
定义三个函数,来实现红灯、绿灯、黄灯
function red() {
console.log('红灯');
}
function green() {
console.log('绿灯');
}
function yellow() {
console.log('黄灯');
}
定义函数run,里面实现红灯、绿灯、黄灯的切换,通过定时器套定时器,并在最后一个定时器内进行自身函数的调用,也就是递归
function run() {
red();
setTimeout(() => {
green();
setTimeout(() => {
yellow();
setTimeout(() => {
run();
}, 2000);
}, 2000)
}, 3000);
}
执行函数run
run();
实现效果:
还有一种方法,就是通过promise + async来实现
function timePromise(time) {
return new Promise(function(resolve, reject) {
setTimeout(resolve, time);
});
}
async function changeColor(time, fn) {
fn();
await timePromise(time);
}
async function run () {
while(true) {
await changeColor(3000, red);
await changeColor(2000, green);
await changeColor(3000, yellow);
}
}
结语
下面介绍一下async/await的知识点
async 函数await 表达式总结