Study/Node.js

[노드JS] 함수를 호출했을 때 또 다른 함수를 파라미터로 전달하기

AC 2019. 3. 16. 14:54



함수를 파라미터로 전달하는 경우는 대부분 비동기 프로그래밍(Non-Blocking Programming) 방식으로 코드를 만들 때이다. 예를 들어, 더하기 함수를 실행한 후 결과 값이 반환될 때까지 기다리지 않고 그 다음 코드를 실해앟려면 비동기 방식으로 코드를 만들어야 한다. 즉, 더하기 함수를 실행하는 데 시간이 걸릴 수 있기 때문에 그 다음 코드를 바로 실행한다.


그리고 연산이 끝났을 때 파라미터로 전달한 함수가 실행될 수 있다면 그 시점에 결과를 처리할 수 있으므로 효율적인 프로그램을 만들 수 있다.


이 때 파라미터로 전달되는 함수를 콜백 함수(Callback function)이라고 한다. 콜백 함수는 함수가 실행되는 중간에 호출되어 상태 정보를 전달하거나 결과 값을 처리하는 데 사용된다.


ch03_test15.js 파일을 새로 만들고 다음과 같이 입력한다.




function add(a, b, callback) {

    var result = a + b;

    callback(result);

}


add(10, 10, function(result) {

   console.log('파라미터로 전달된 콜백 함수 호출됨.');

    console.log('더하기 (10, 10)의 결과 : %d', result);

});



더하기 함수를 정의할 때는 더 이상 값을 반환하지 않도록 return 키워드를 사용하는 코드 부분을 삭제한다.


그 대신 더하기 연산을 한 결과 값은 파라미터로 전달된 콜백 함수를 호출하면서 그 콜백 함수로 전달한다.


콜백 함수는 미리 변수에 할당해 두었다가 add() 함수를 호출할 때 파라미터로 전달할 수도 있지만, add() 함수를 호출할 때 익명 함수로 만들어서 파라미터로 바로 전달할 수도 있다.


콜백 함수는 더하기 연산을 하는 코드 아래에서 호출되는데 이 때 콘솔 창에 메시지를 출력한다. 파일을 실행하면 다음과 같은 메시지를 볼 수 있다.




▲ 콜백 함수로 더하기 연산을 받아 출력하기


LIST