콜백 함수의 이용은 많은 비동기 처리가 발생될 경우 자칫 Callback Hell에 빠질 가능성이 있습니다. 이는 가독성을 떨어 뜨리고 개발자에게 혼란을 가중시키게 됩니다. 따라서 이러한 중첩된 콜백 함수의 실행을 효과적으로 제어하기 위해 Chaining 개념을 도입하고, 그 구현을 위해 Promise를 사용합니다.
// Promise Constructor
const printString = (string) => {
return new Promise((resolve, reject) => {
setTimeout(
() => {
console.log(string);
resolve();
},
Math.floor(Math.random() * 100) + 1
);
});
};
// Promise Chaining
const printAll = () => {
printString("A").then(() => {
return printString("B");
}).then(() => {
return printString("C");
});
};
printAll(); // A, B, C
코드 출처: 코드스테이츠(CodeStates)