海康威視筆試題(promise)

今天作了海康威視的筆試題,感受不是很妙...但仍是作個 記錄分享一下,這道題仍是作對了的。函數

紅燈三秒亮一次,綠燈一秒亮一次,黃燈2秒亮一次;如何讓三個燈不斷交替重複亮燈?

function red(){
console.log('red');
}
function green(){
console.log('green');
}
function yellow(){
console.log('yellow');
}
複製代碼

題目要求用Promise來完成,那麼,就寫起來吧。 先寫一個Promise函數spa

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();複製代碼
相關文章
相關標籤/搜索