【面试刷题 】使用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()
相关推荐
真的很上进5 分钟前
2025最全TS手写题之partial/Omit/Pick/Exclude/Readonly/Required
java·前端·vue.js·python·算法·react·html5
用户6945295521708 分钟前
国内开源版“Manus”——AiPy实测:让你的工作生活走上“智动”化
前端·后端
帅夫帅夫11 分钟前
一文手撕call、apply、bind
前端·javascript·面试
J船长13 分钟前
APK战争 diffoscope
前端
鱼樱前端26 分钟前
重度Cursor用户 最强 Cursor Rules 和 Cursor 配置 mcp 以及最佳实践配置方式
前端
曼陀罗27 分钟前
Path<T> 、 keyof T 什么情况下用合适
前端
来自星星的猫教授29 分钟前
将 VSCode 的快捷键设置为与 IntelliJ IDEA 类似
vue.js·vscode
锈儿海老师33 分钟前
AST 工具大PK!Biome 的 GritQL 插件 vs. ast-grep,谁是你的菜?
前端·javascript·eslint
飞龙AI35 分钟前
鸿蒙Next实现瀑布流布局
前端