简单实现,应该会有更好的写法。只要考察了promise和定时器。
注意resolve(),reject()。promise只有在resolve()或者reject()之后才会往下执行(promise的状态会发生改变),根据状态决定是进入then还是catch.
function lightPromise(fn,time){
return new Promise((resolve)=>{
setTimeout(()=>{
fn()
resolve()
},time)
})
}
function red(){
console.log('红灯亮了')
}
function green(){
console.log("绿灯亮了")
}
function yellow(){
console.log("黄灯亮了")
}
lightPromise(red,1000).then(()=>{
lightPromise(green,2000).then(()=>{
lightPromise(yellow,3000)
})