Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

Code Habit

[JavaScript] Promise 기초 본문

카테고리 없음

[JavaScript] Promise 기초

코드베어 2022. 1. 23. 20:06

Promise는 자바스크립트 비동기 처리에 사용되는 객체이다. 대부분의 작업이 비동기로 이루어지는 자바스크립트에서 콜백함수로 인한 복잡도가 높아지는 문제를 해결하기 위해 Promise 패턴이 고안되었다.

 

Promise는 콜백 중첩으로 인한 문제점들을 해소하면서 비동기 작업들의 컨트롤이 수월해지고 코드의 가독성을 높이는데 기여하였다.

 

다음은 Promise를 사용하는 기본 예제이다.

// Promise 생성
const promise = (param)=> {
    return new Promise((resolve, reject)=> {
        if(param) {
            resolve("true");
        } else {
            reject("false");
        }
    });
};

// Promise 실행
promise(true)
.then((message)=>{  // resolve 호출 시 
    console.log(message);
})
.catch((error)=>{   // reject 호출 시
    console.error(error);
})
.finally(()=>{  // 마지막 실행
    console.log("end !");
});

new Promise로 프라미스 객체를 생성해 놓고 promise(true)로 프라미스를 실행한다. 매개변수로 true를 주었기 때문에 param에 true가 할당되어 resolve("true")가 호출되고 이를 .then에서 받게 된다. 이때 resolve에서 전달하는 "true"는 message로 받는다.  promise(false)를 실행하면 reject가 호출되는데 이는 .catch에서 받아서 처리한다.

 

Promise(약속)를 쉽게 설명하자면, 실행은 바로 하되 결괏값은 나중에 받는 객체이다. 결괏값은 실행이 완료된 후 then이나 catch 메서드를 통해 받게되고 finally 메서드는 결괏값에 상관없이 마지막에 무조건 실행된다.