Promise

동기

function a(){
            document.write("a")
            document.write("br")
        }
        function b(){
            document.write("b")
        }
        a()
        b()
        //ab그대로 출력

비동기

function a(){
    setTimeout(function(){
        console.log("a")
}, 1000)
}
function a(){
    setTimeout(function(){
        console.log("a")
    }, 1000)
}

a()
b()
//ba 출력

콜백 지옥

//콜백 지옥
function a(callback){
    setTimeout(function(){
        console.log('A');
    },1000)
}
function a(callback){
    setTimeout(function(){
        console.log('A');
    },1000)
}
function a(callback){
    setTimeout(function(){
        console.log('A');
    },1000)
}
function a(callback){
    setTimeout(function(){
        console.log('A');
    },1000)
}
a(function(){
    b(function(){
        c(function(){
            d(function(){
                
            })
        })
    })
})

Promise

//promise
function a(){
    return new Promise ((resolve, reject) => {
        setTimeout(() => {
            console.log("A");
            resolve();
        }, 1000);
    });
}
function b(){
    return new Promise ((resolve, reject) => {
        setTimeout(() => {
            console.log("B");
            resolve();
        }, 1000);
    });
}
function c(){
    return new Promise ((resolve, reject) => {
        setTimeout(() => {
            console.log("C");
            resolve();
        }, 1000);
    });
}
function d(){
    return new Promise ((resolve, reject) => {
        setTimeout(() => {
            console.log("D");
            resolve();
        }, 1000);
    });
}

a()
.then(()=>b())
.then(()=>c())
.then(()=>d())

Last updated

Was this helpful?