您的当前位置:首页正文

用Promise实现红绿灯不断交替亮灯的逻辑

2024-11-26 来源:个人技术集锦

一、用Promise实现红绿灯不断交替亮灯的逻辑

红灯3秒亮一次,绿灯1秒亮一次,黄灯2秒亮一次;

如何让三个灯不断交替重复亮灯?(用Promise实现)三个亮灯函数已经存在:

function red() {
    console.log('red');
}
function green() {
    console.log('green');
}
function yellow() {
    console.log('yellow');
}

解析: 

答案:

function red() {
    console.log('red');
}
function green() {
    console.log('green');
}
function yellow() {
    console.log('yellow');
}

var light = function (timmer, cb) {
    return new Promise(function (resolve, reject) {
        setTimeout(function () {
            cb();
            resolve();
        }, timmer);
    });
};

var step = function () {
    Promise.resolve().then(function () {
        return light(3000, red);
    }).then(function () {
        return light(2000, green);
    }).then(function () {
        return light(1000, yellow);
    }).then(function () {
        step();
    });
}

step();

二、Promise的常见面试题

 

显示全文