Programming/Javascript

[ETC] 비동기처리 (Callback / Promise)

i독 2021. 10. 7. 04:23

비동기 처리 -> 이렇게 특정 로직의 실행이 끝날 때까지 기다려주지 않고 나머지 코드를 먼저 실행하는 것.

콜백함수 -> 나중에 호출되는 함수를 의미한다. 함수가 실행되는 중간에 호출되어 상태 정보를 전달하거나 결과 값을 처리한다.

function getData(callbackFunc) {
        $
.get('https://domain.com/products/1', function(response) {
                
callbackFunc(response); // 서버에서 받은 데이터 response callbackFunc() 함수에 넘겨줌
        
});
}

getData(function(tableData) {
        console
.log(tableData); // $.get() response 값이 tableData에 전달됨


Promise -> 비동기 처리로 인하여 발생하는 특정 로직에 대한 불합리를 해결하기 위한 방법 하나.

Promise 객체를 생성하여 각각 resolve, reject 성공 인자와 실패 인자를 정의한다.

function getData(callback) {
 
// new Promise() 추가
 
return new Promise(function(resolve, reject) {
    $
.get('url 주소/products/1', function(response) {
     
// 데이터를 받으면 resolve() 호출
     
resolve(response);
   
});
 
});
}

// getData()의 실행이 끝나면 호출되는 then()
getData().then(function(tableData) {
 
// resolve()의 결과 값이 여기로 전달됨
  console
.log(tableData); // $.get() reponse 값이 tableData에 전달됨
});