Promise의 등장 이유
const fakeRequestCallback = (url, success, failure) => {
const delay = Math.floor(Math.random() * 2500) + 500;
setTimeout(() => {
if (delay > 2000) {
failure("Connection Timeout");
} else {
success(`Here is your fake data from ${url}`);
}
}, delay);
};
fakeRequestCallback(
"boos.com/page1",
//첫번째 요청을 하고 난 뒤 요청을 하기위해 success 콜백에서 다시 fakeRequestCallback 호출
//첫번째 요청이 실패하게 되면 다른 요청들은 실행 X
//꼭 이렇게 해야하는 것은 아니고 나열해서 해도 무관함
//콜백 안에 콜백 안에 콜백을 하게 되면 유지보수가 힘들고 코드를 보기 힘듦
function (a) {
console.log(a);
console.log("첫번째 요청");
fakeRequestCallback(
"boos.com/page2",
function (a) {
console.log(a);
console.log("두번째 요청");
fakeRequestCallback("boos.com/page3",function(a){
console.log(a);
console.log("세번째 요청");
},function(b){
console.log(b);
console.log('3번째 요청 실패')
})
},
function (b) {
console.log(b);
console.log('두번째 요청 실패')
}
);
},
function (b) {
console.log(b);
console.log('첫번째 요청 실패')
}
);