FRONTEND/JavaScript
(callback) - 비동기적인 것을 제어하는 방법
MarkLEE
2021. 5. 31. 13:39
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라고 생각하면 된다.