- 다른함수의 인자로써 이용되는 함수
- 어떤 이벤트에 의해 호출되어지는 함수
비동기 방식으로 작성된 함수를 동기 처리 하기위해 주로 사용한다.
일부 구간에서 순차적인 처리가 필요할 때가 있기 때문
funtion buy(asset, price) {
console.log("가격 : " + price);
setTimeout(funtion(){
console.log("계산중...");
let change = asset - price;
return change;
}, 1000);
}
funtion payDone(ch) {
console.log("잔돈 : " + change);
}
var change = buy(15000, 10400);
payDone(change);
가격 : 10400
잔돈 : undefined
계산중...
❗ setTimeout함수는 비동기방식
setTimeout함수는 1초뒤에 실행되는데
호출한 후 바로 다음 구문을 실행하기때문에
change변수에 값을 받지 못한 상태로 payDone함수가 실행됨.
function buy(asset, price, callback) {
console.log("가격 : " + price);
setTimeout(funtion(){
console.log("계산중...");
let change = asset - price;
callback(change);
}, 1000);
}
buy(15000, 10400, payDone);
// buy(15000, 10400, funtion(ch){
// console.log("잔돈 : " + ch);
// });
가격 : 10400
계산중...
잔돈 : 4600
그 외에도 async&await, promise등을 사용할 수 있는데
이 부분은 callback hell에서 알아보자. 👋