call back 함수란?
비동기 프로그래밍 방식으로 코드를 만들 때 함수를 파라미터로 만들어 전달한다.
예를들어 더하기 함수를 실행한 후 결과 값이 반환되기를 기다리지 않고 다음 코드를 실행하려고 할 때 콜백 함수를 사용한다.
그리고 연산이 끝났을 때 파라미터로 전달한 함수가 실행될 수 있다면 효율적이다. 이 때 파라미터로 전달되는 함수를 콜백 함수라고한다.
function getData(){
let tableData;
$.get('https://hi.com', function (response){
tableData=response;
});
return tableData;
}
console.log(getData());
➡️ $.get()을 사용해 지정된 URL에 데이터를 보내주세요라고 요청하고, 그 데이터를 리턴해야 하는데, 결과는 undefined 이다. 그 이유는 데이터를 받아올때까지 기다리지 않고, 비동기적으로 console.log(getData())를 먼저 처리해버렸기 때문이다.
✅ 해결방법 - callback 함수 사용
function getData(callbackFunc){
$.get('https://hi',function (response){
callbackFunc(response);
});
}
getData(function(tableData)){
console.log(tableData);
}
➡️정상적으로 처리됨.
횔용
function getAllMemos(callback){
connection.query(`SELECT * FROM MEMOS ORDER BY ID DESC`, (err, rows, fields) => {
if(err) throw err;
callback(rows);
});
}
➡️ 만약 콜백함수로 처리하지 않으면 데이터가 불러오기전에 함수가 실행되어 undefined가 출력될 수 있다.
참고) https://dalkomit.tistory.com/65
'Backend Study > Node.js' 카테고리의 다른 글
multer로 파일 업로드하기 (0) | 2022.08.24 |
---|---|
Node.js 내장 모듈 사용하기 (0) | 2022.08.04 |
Node.js Process (0) | 2022.08.04 |
Node.js 모듈 이용하기 (0) | 2022.08.04 |
Node.js 설치하기 (0) | 2022.08.03 |