callback함수
function printNow(print){
print();
}
라는 함수가 있다고 하자, 여기에서 print라는 파라미터는 printNow함수의 콜백함수가 되게 된다.
우리는 보통 callback함수를 비동기적이라고 말을 하지만, 모든 callback함수가 비동기적인것은 아니다.
만약에 printNow(() => console.log("Hi! syncrnous callback function"))이라고 하게 된다면,
printNow의 연결인자로 들어온 익명함수는 콜백함수는 맞지만, 동기적인 함수가 되게 된다.
하지만 만약,
printNow(setTimeout(() => console.log("it is asynchronous"), 1000 ))
이라고 하게 된다면, 해당 함수는 비동기적인 함수가 되게 된다.
하지만 이런식으로 계속 함수에 인자로 콜백함수, 콜백함수의 콜백함수, 콜백함수의 콜백함수.....
식으로 코드를 작성하게 되면 일명 callback-hell이 생기게 되며,
이런경우를 방지하기 위해 나온것이 promise라고 생각하면 된다.
'FRONTEND > JavaScript' 카테고리의 다른 글
도대체 HTTP, AJAX, XHR, XML 그리고 JSON은 무엇인가? (0) | 2021.06.06 |
---|---|
(Promise, async & await) - 콜백헬을 피해서... (0) | 2021.05.31 |
asynchronous function (0) | 2021.05.20 |
순열로 모든 경우의수 배열로 정리하기 (0) | 2021.05.19 |
배열, 객체 풀어서 합치기(... spread문법, assign메소드) (0) | 2021.05.19 |