SOURCE

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()
console 命令行工具 X clear

                    
>
console