Skip to content

红绿灯的两种实现

基础

js
function solve(){
    setTimeout(() => {
        console.log("red");
        setTimeout(() => {
            console.log('green');
            setTimeout(() => {
                console.log('yello');
                solve();
            }, 3000);
        }, 2000);
    }, 1000);
}
solve();

Promise

js
function solve(time1,time2,time3){
    let p=new Promise(resolve=>{
        console.log("red");
        setTimeout(resolve,time1);
    }).then(()=>{
        return new Promise(resolve=>{
            console.log("green");
            setTimeout(resolve,time2);
        })
    }).then(()=>{
        return new Promise(resolve=>{
            console.log("yellow");
            setTimeout(()=>{
                
                solve(time1,time2,time3);
                resolve();
            },time3);
        })
    })
}
solve(1000,2000,3000);

Welcome to the site