[Javascript - 이론] 프로미스 / 프로미스 체이닝
- 📕 Programing/Javascript
- 2023. 4. 8. 16:47
프로미스란
- 콜백을 사용했을 때의 복잡함을 피하기 위해, ES6부터 "프로미스(promise)" 등장
- 프로미스는 객체를 생성(제작)하는 부분과소비하는 부분으로 나뉜다.
- 프로미스 제작 코드에서 '성공'과 '실패'를 확인한 후 소비 코드로 알려준다
프로미스 체이닝
- then()을 사용해 여러 개의 프로미스를 연결하는 것을 '프로미스 체이닝' 이라고 한다.
- 프로미스는 resolve와 reject를 사용해서 성공과 실패에 대한 동작을 명확하게 구별할 수 있고,
- 함수에 계속해서 함수를 포함시키지 않기 때문에 콜백 지옥을 벗어날 수 있는 좋은 방법이다.
- 예) A,B,C 각 실행 시간이 다르지만 A작업이 끝날 때까지 기다렸다가 B작업을 하고, 다시 B작업이 끝날 때 까지 기다렸다가 C작업을 해아 한다면?
프로미스 체이닝 예제
const pizza = () => {
return new Promise((resolve, reject)=> {
resolve("피자를 주문합니다.");
})
}
const step1 = (message) => {
console.log(message);
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("피자 도우 준비");
}, 3000);
})
}
const step2 = (message) => {
console.log(message);
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("토핑 완료");
}, 3000);
})
}
const step3 = (message) => {
console.log(message);
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("굽기 완료");
}, 3000);
})
}
수행
pizza()
.then(step1)
.then(step2)
.then(step3)
.then(console.log)
.then(() => console.log("피자가 준비되었습니다."));
'📕 Programing > Javascript' 카테고리의 다른 글
[Javascript] fetch 활용 (0) | 2023.04.09 |
---|---|
[Javascript] 스타일 변경 (0) | 2023.04.08 |
[Javascript] Date 현재 날짜 출력 (yyyy-mm-dd) (0) | 2023.03.12 |
[오류] ajax Access-Control-Allow-Origin 문제 (0) | 2023.01.04 |
[Javascript] 객체의 Key, Value 조회하는 방법 (0) | 2022.11.11 |