promise 함수

function a(){
    console.log("A")
};
function b(){
    console.log("V")
};

a();
b();
동기 함수
function a(){
    setTimeout(function(){
        console.log("A")
    }, 1000);
};
function b(){
    console.log("A")
};

a();
b();
비동기 함수
// 콜백 지옥
function a(callback){
    setTimeout(function(){
        console.log("A")
        callback();
    }, 1000);
};
function b(callback){
    setTimeout(function(){
        console.log("B")
        callback();
    }, 1000);
};
function c(callback){
    setTimeout(function(){
        console.log("C")
        callback();
    }, 1000);
};
function d(){
    setTimeout(function(){
        console.log("D")
    }, 1000);
};
a(function(){
    b(function(){
        c(function(){
            d();
        });
    });
});
코드가 복잡해짐
// 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) => {
        if(isError){
            reject();//에러가 뜰때 반환
        }
        setTimeout(() => {
            console.log("D");
            resolve();
        },1000);
    });
}

a()
.then(() => b())
.then(() => c())
.catch((error) => {
    console.log(error) //에러반환
})

Last updated

Was this helpful?