본문 바로가기

Back-End/Node.js

Node.js.28.3.JavaScript-callback

반응형

callback

Non-Blocking Code. 비동기.

프로그램이 함수가 끝날 때까지 기다리지 않고, 바로 그 아래에 있는 코드들을 실행한다. 그 다음에 함수에 있던 작업이 모두 끝나면 콜백함수를 호출한다.

 


 

(1) 함수

function a(){
  console.log('A');
}
a{};	//A

(2) 익명함수 (anaymnous function)

예제

//익명함수 (함수가 값임)
var a = function (){
  console.log('A');
}
a();	//A

익명함수 + callback함수 -1-

var a = function (){
  console.log('A');
  });
}

function slowfunc(callback){  //엄청 느리게 동작하는 함수
  console.log('1');
  callback(); //console.log('A')가 실행됨
  console.log('2')
}

slowfunc(a);
1
A
2

익명함수 + callback함수 -2-

//익명함수 (함수가 값임)
var a = function (){
  var fs = require('fs');
  fs.readFile('syntax/sample.txt', 'utf8', function(err, result){
    console.log(result);
  });
}

//함수가 끝났으니 다음 일을 하세요! 알려줌
//callback : a가 가리키는 함수를 가짐
function slowfunc(callback){  //엄청 느리게 동작하는 함수
  console.log('1');
  callback(); //console.log('A')가 실행됨
  console.log('2');
}

slowfunc(a);
1
2
A

만약 callback()함수 아래 코드가 그냥 console.log가 아니라 callback함수에 들어있는 readFile()보다 더 작업시간이 오래 걸리는 코드였다면 1->A->2 순서이다.


 

[Node.JS] 강좌 06편: Callback Function 개념 | VELOPERT.LOG

Callback Function 이 뭘까? 자바스크립트에서는, 함수(function)는 일급 객체입니다. 즉, 함수는 Object 타입이며 다른 일급객체와 똑같이 사용 될 수 있습니다. (String, Array, Number, 등등..) function 자체가 �

velopert.com

 

반응형