第1题:使用Promise实现红绿灯交替重复亮
红灯3秒亮一次,绿灯2秒亮一次,黄灯1秒亮一次;如何让三个灯不断交替重复亮灯?
要求:用Promise实现
三个亮灯函数已经存在:
function red() {
console.log('red');
}
function green() {
console.log('green');
}
function yellow() {
console.log('yellow');
}
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()