【面试刷题 】使用Promise实现红绿灯交替重复亮

第1题:使用Promise实现红绿灯交替重复亮

红灯3秒亮一次,绿灯2秒亮一次,黄灯1秒亮一次;如何让三个灯不断交替重复亮灯?

要求:用Promise实现

三个亮灯函数已经存在:

javascript 复制代码
function red() {
    console.log('red');
}
function green() {
    console.log('green');
}
function yellow() {
    console.log('yellow');
}
javascript 复制代码
	function lightOn(time,cb){
            return new Promise((resolve) => {
                cb()
                setTimeout(() => {
                    resolve()
                }, time);
            
            })
        }
        function pro(){
            Promise.resolve().then(() => {
                return lightOn(3000, red)
            }).then(() => {
                return lightOn(2000, green)
            }).then(() => {
                return lightOn(1000, yellow)
            }).then(()=>{
                pro()
            })
        }
        pro()
相关推荐
zhangyao94033016 小时前
开发pc端时,表格的高度怎么设置才能铺满页面
前端·javascript·elementui
XinZong16 小时前
实测OpenClaw虾淘:全民工具AI时代,冷门非工具类的Skill还能出圈吗?
javascript
kjs--16 小时前
浏览器书签执行脚本
前端
烛衔溟16 小时前
TypeScript 类的类型 —— 作为类型使用
javascript·ubuntu·typescript
之歆16 小时前
Day16_JavaScript 轮播图与事件工程实战(下篇)
服务器·开发语言·前端·javascript·网络·性能优化
沄媪16 小时前
CSRF 跨站请求伪造
前端·ctf·csrf
kyriewen17 小时前
我关掉了Copilot:因为我写的代码出现在了别人的建议里
前端·javascript·ai编程
欧雷殿18 小时前
从「吸引子引导工程」看我的「一人公司」实践
前端·人工智能·后端
SmartRadio18 小时前
STM32WLE5 LoRa Smart TDMA 完整协议栈实现(工程级可直接编译)-【1】
javascript·stm32·单片机·嵌入式硬件·lora·自组网·smart tdma