ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 콜백 (callback)
    concept/javascript 2020. 5. 27. 02:43

    대표 예시

    setTimeout에서 실행되는 함수 안에서 일어나는 연산들을 가져오기

    //함수 표현식
    function helloWorld (callback) {
        setTimeout(()=>{
          var a = 'hello';
          var b = 'world';
          callback(a + b) //<--여기 콜백함수가 있습니다!
        }, 2000)
    }
    
    //함수 호출
    helloWorld((value) => {
    	console.log(value)
    })
    
    //결과는 undefined가 나오고 2초 후에 helloworld 가 나온다.

    콘솔에 출력된 값

     

    먼저 undefined가 나오는 이유는 function helloWorld의 리턴값이 없기 때문이다.

    그리고 undefined가 호출 된 후 함수 내부에서 setTimeout이 실행되고 있어서 2초의 시간이 소요된다.

    setTimeout 안에는 callback 함수가 실행되고 있다. (**여기 콜백함수가 있습니다! 부분)

     

    helloWorld 함수를 호출할 때, 전달인자로 console.log로 value를 콘솔에 찍는 익명함수를 전달했다.

    이 익명함수는 앞에서 function helloWorld에서 함수를 선언했을 때 파라미터로 적어준 콜백 함수가 되는 것이고 그 콜백 함수의 기능이 함수를 호출할 때 만들어진 것이다.

     

    그래서 setTimeout 내부에서 실행되는 함수는 지정된 밀리초 후에 hello + world를 콘솔창에 출력하게 되는 것이다.

    댓글

Designed by Tistory.