티스토리 뷰

Javascript

javascript - 콜백함수

gwni0214 2022. 4. 13. 17:56

 

콜백함수에 대해서 알아봅시다.

콜백함수는 다른 함수에 인수로 넘겨지는 함수 를 말합니다. 

 

funcA()와 funcB()가 순서대로 있는 와중에 A가 아니라 B를 먼저 실행 시키고 싶을때 사용할 수 있습니다. 

동시에 이루어지는걸 동기,  동시에 이루어지지 않는 방식을 비동기라고 합니다. 

 

  function func(){
        document.write("함수가 실행되었습니다.2");
    }

    function callback(str){
        document.write("함수가 실행되었습니다.1");
        str();
    }
    callback(func);

 

콜백함수 안에서 매개변수 str에 함수 func가 들어갑니다. 원래대로 차레 차례 실행을 하면 

함수가 실행되었습니다. 2
함수가 실행되었습니다. 1

이렇게 나와야 하지만 콜백함수에 매개변수가 func이 들어가고 콜백함수의 매개변수 실행이 뒤로 와서 

함수가 실행되었습니다. 1
함수가 실행되었습니다. 2

가 실행됩니다. 

 

다음은 콜백함수를 이용한 함수의 반복문 입니다.

 

//콜백 함수 반복문
    function func(){
        document.write("함수가 실행되었습니다.");
    }
    function callback(num){
        for(let i =1; i<=5; i++){
            num(i);
        }
    }
    callback(func);

for문을 이용한 함수의 반복입니다. callback 함수의 매개변수 num이 5번 실행이 됩니다. 

 

다음은 setTimeout을 이용한 비동기 방식의 콜백함수 입니다.

 

 function funcC(){
        setTimeout(()=>{
            console.log("C");
        },1000)            
    }
    function funcD(){
        console.log("D")
    }
    funcC();
    funcD();

이렇게 되면 D가 먼저 실행된 후 1초 후 C가 실행됩니다.

 

 function funcE(callback){
            setTimeout(()=>{
                console.log("E");
                callback();
            },1000);
        }
        function funcF(){
            console.log("F");
        }
        funcE(function(){
            funcF();
        })

이번에는 둘다 1초 후에 실행됩니다. funcE 안에 funcF가 들어가서 E가 먼저 실행 후 F가 나옵니다.

'Javascript' 카테고리의 다른 글

카드게임  (0) 2022.04.14
jQuery / javascript 비교. getAttribute와 attr  (0) 2022.04.14
javascript - 내부함수  (0) 2022.04.13
Json 이란?  (0) 2022.04.11
FTP 란?  (0) 2022.04.11
댓글
© 2018 webstoryboy