【面试刷题 】使用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()
相关推荐
ji_shuke4 小时前
canvas绘制拖拽箭头
开发语言·javascript·ecmascript
2501_946244785 小时前
Flutter & OpenHarmony OA系统设置页面组件开发指南
开发语言·javascript·flutter
cz追天之路5 小时前
华为机考 ------ 识别有效的IP地址和掩码并进行分类统计
javascript·华为·typescript·node.js·ecmascript·less·css3
进击的野人5 小时前
Vue Router 深度解析:从基础概念到高级应用实践
前端·vue.js·前端框架
北慕阳5 小时前
健康管理前端记录
前端
1024小神5 小时前
cloudflare的worker中的Environment环境变量和不同环境配置
前端
栀秋6665 小时前
从零开始调用大模型:使用 OpenAI SDK 实现歌词生成,手把手实战指南
前端·llm·openai
l1t5 小时前
DeepSeek总结的算法 X 与舞蹈链文章
前端·javascript·算法
智航GIS5 小时前
6.2 while循环
java·前端·python
2201_757830875 小时前
AOP核心概念
java·前端·数据库