callback funtion은 함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수
매개변수를 통해 함수의 외부에서 콜백 함수를 전달 받은 함수를 고차함수(Higher-Order Function, HOF) 라고 함
function repeat(n, f){ // HOF - 고차함수
for(var i =0; i < n; i++){
f(i);
}
}
var logAll = function (i) { // callback function
console.log(i);
};
repeat(5, logAll);
var logOdds = function (i) { // callback function
if(i % 2) console.log(i);
};
repeat(5, logOdds);
그런데 이 콜백 함수들이 실행된 결과에 맞춰 후혹 처리를 수행하는 비동기 함수를 호출해야 한다면 콜백 함수 호출이 중첩되어 복잡도가 높아지는 현상이 발생
(주로 get 요청 보내는데서 잘못할 경우에 볼 수 있음)
이를 콜백 헬(Callback Hell) 이라고 함
: 초 간단 정리
--> 콜백 함수 호출 --> 그 결과에 따라 콜백을 호출 --> 그 결과에 맞는 콜백 호출
이런 식으로 콜백 호출이 중첩되어 복잡도가 높아지는거임
==> 이를 해결하기 위해 try.. catch.. finally 등을 사용했는데
ES6 이후로 promise가 도입됐음