Promise
비동기 처리를 위해서 JS 에서는 주로 콜백을 많이 사용함.
콜백은 비동기 처리를 할 수 있지만, 비동기 작업을 순차적으로 처리해야할 경우 중첩시켜 표현하므로 예외처리가 어렵고, 중첩으로 인한 복잡도가 높음.
이를 위해 Promise 라이브러리가 생겼고 ES6에서 언어적 차원에서 지원하게 됨.
IE에서는 지원 되지 않지만 bluebirdjs
라이브러리를 추가 해준다면 지원 가능함.
Promise의 핵심은 목적만 머리에 넣고, 직접 적용해 보는것임.
Promise는 pending(수행중), fulfilled(완료), rejectd(실패), settled(종료)의 단계를 가지고 있고,
단어 의미 그대로 "약속"임. '지금은 없는데, 이상없으면 이따 주고 없으면 알려줄게~' 의 약속임.
Promise의 선언
// Promise의 선언부
let myPromise = function (param) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (param) {
resolve("SUCESS!!");
} else {
reject(Error("FAIL!!"));
}
}, 1000);
});
};
// Promise의 실행부
myPromise(false)
.then((result) => console.log(result))
.catch((err) => console.log(err));
// 아래처럼 실행할 수도 있음.
myPromise(false).then(
(result) => console.log(result),
(err) => console.log(err)
);
Promise의 심화는 생략 하도록 하겠음.
728x90
반응형
'Language > JavaScript' 카테고리의 다른 글
[JS] 날짜 비교 (0) | 2020.11.11 |
---|---|
[Modern JS] 동기 처리를 위한 Async Await (0) | 2020.06.14 |
[Modern JS] spread 와 rest (0) | 2020.06.14 |
[Modern JS] 구조 분해 할당, 비 구조화 할당 (Destructuring Assignment) (0) | 2020.06.05 |
[Modern JS] 화살표 함수 (Arrow Function) (0) | 2020.06.05 |