海康威视笔试题(promise)

2,843 阅读1分钟

今天做了海康威视的笔试题,感觉不是很妙...但还是做个 记录分享一下,这道题还是做对了的。

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

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

题目要求用Promise来完成,那么,就写起来吧。 先写一个Promise函数

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();