콜백함수 사용하기
Written on July 17, 2019
콜백함수란, 다른 함수에 인자로 전달되어진 함수로, 외부함수 내에서 일종이 루틴이나 동작을 완성하게 위해 호출된다. 가장 큰 특징은 특정 시점이 되었을 때 실행되어진다는 것이다.
function greeting(name) {
alert("Hello " + name);
}
function processUserInput(callback) {
var name = prompt("Please enter your name.");
callback(name);
}
processUserInput(greeting);
greeting
이라는 함수는 processUserInput
에 인자로 전달되어 사용자가 이름을 입력하고 나면 실행되어진다.
파일을 쓰고 읽는것도 동기처리가 필요한 작업이다. filepath와 callback함수를 인자로 전달하여 파일에 있는 글자 수를 세는 함수를 아래와 같이 작성할 수 있다.
var callback = (err, count) => {
if (err) {
console.err(err);
} else {
console.log(count);
}
};
var getWordCount = (filePath, callback) => {
fs.readFile(filePath, "utf-8", (err, data) => {
if (err) {
callback(err, null);
return;
}
var wordCount = data.trim().split(" ").length;
callback(null, wordCount);
});
};
콜백함수를 사용함에 있어 주의해야 할 점은 ‘콜백지옥(callback hell)’에 빠질 수 있다는 것이다. 콜백지옥이란 함수의 매개 변수로 넘겨지는 콜백 함수가 반복되어 코드를 가독성이 떨어지는 것을 말하는데, 이에 대한 대체제로 promise 혹은 async/await을 사용할 수 있다.
👩🏻💻 배우는 것을 즐기는 프론트엔드 개발자 입니다
부족한 블로그에 방문해 주셔서 감사합니다 🙇🏻♀️
in the process of becoming the best version of myself