Backend Study/Node.js

call back 함수

gyu.ree 2022. 9. 2. 11:15

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

https://velog.io/@woohyun_park/node.js-Callback-Function