function red(){
console.log('red');
}
function green(){
console.log('green');
}
function yellow(){
console.log('yellow');
}
function excute (timmer, cb) {
return new Promise(function (resolve, reject) {
setTimeout(() => {
cb()
resolve()
}, timmer)
})
}
function step () {
Promise.resolve().then(() => {
return excute(3000, red)
}).then(() => {
return excute(1000, yellow)
}).then(() => {
return excute(2000, green)
}).then(() => {
step()
})
}
step()