JavaScript/이론

[Javascript] 콜백, 비동기

sirius 2021. 3. 18. 10:19

콜백함수는 주로 함수 내부의 처리결과를 함수 외부로 내보낼 때 사용

function 함수명(callback) {
    callback(결과)
}

콜백 함수를 사용해야 하는 경우는 처리 부분이 구현 부분과 분리되어야 하는 경우나 구현 부분은 하나로 하고 처리 부분을 다양하게 만든 후 실행 시에 연결해서 사용하는 경우에 적합

 

function callBack_plus(num1, num2, callback) {

    callback(num1 + num2);
}

function result(result) {
    console.log("두 수의 합은 " + result + " 입니다.");
}

callBack_plus(5, 5, result);

비동기 :  서버에서 응답 받아온 결과를 기다려 주지 않고 함수에서 return해 버리기 때문에 undefined가 발생

function requestServer() {
    var result;

    $.get("http:/google.com", function(response) {
        result = response;
    });

    return result;
}
console.log(requestServer()); //undefined

콜백을 이용하여 비동기 처리 해결 : 서버에서 받아온 응답 결과를 콜백함수에 넘겨주어 실행

function requestServer(callback) {
    $.get("http://google.com", function(response) {

        callback(response);
    });
}

requestServer(function(result) {
    console.log(result);
});