JavaScript Callback (콜백)

sungwoo choi·2020년 12월 16일
0

콜백 사용방법

function doHomework(subject, callback) {
  alert(`Starting my ${subject} homework.`);
  callback();
}
doHomework('math', function() {
  alert('Finished my homework');
});

위와 같은 코드를 입력하면 2개의 alert를 연달아 받게된다.
Starting my math homework -> Finished my

콜백 함수를 꼭 함수 호출 시에 정의할 필요는 없음, 아래 예제와 같이 콜백 함수는 어느 부분에서라도 정의 될수 있음

function doHomework(subject, callback) {
  alert(`Starting my ${subject} homework.`);
  callback();
}
function alertFinished(){
  alert('Finished my homework');
}
doHomework('math', alertFinished);

위 예제의 결과는 바로 전 예제와 완전 같을 것이다.
하지만 코드 구성이 약간 다르다. 당신이 알 수 있듯이,
doHomework() 함수를 호출할 때 alertFinished 함수의 정의를 인자로 넘겨준다!

> 실제 사용 예제


T.get('search/tweets', params, function(err, data, response) {
  if(!err){
    // This is where the magic will happen
  } else {
    console.log(err);
  }
})

T.get 은 Twitter Api 에 GET 요청을 보낸다는 뜻이다.
이 요청에는 3개의 인자가 있음 'search/tweets'은 요청의 경로, params는 검색 인자, 그리고 어떤 익명함수 이것이 바로 콜백이다.
콜백은 우리가 이 코드의 다음 로직으로 넘어가기 전에 API의 응답을 기다려야 하기 때문에 중요하다!

우리는 현재 API 요청이 성공할지 실패할지 모르기 때문에 일단 우리의 파라미터들을 던져놓고 기다린다.

일단 Twitter가 응답하기만 하면 우리의 콜백 함수가 실행된다.
Twitter는 err (error) object나 response object를 보낼 것이고 우리는 콜백 함수 내에서 if() 문을 사용함으로써 우리의 요청이 성공했는지 아닌지를 판단할 수 있다.
그 후에 새로운 데이터를 처리하면 된다.

profile
dantedev 나 혼자하는 메모

0개의 댓글