ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

Promise

자바스크립트 비동기 처리에 사용되는 객체 

서버에 데이터를 요청하고 받아오기 위해 API 사용==> 대체 

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에 전달됨
});

Promise의 3가지 상태 (처리 과정) 

1. Pending(대기) : 비동기 처리 로직이 아직 완료되지 않은 상태 

newPromise(): 메서드를 호출해 대기 상태를 만듬 => 메서드 호출 시 콜백 함수를 선언할 수 있고, 인자는 (resolve, reject)

2. Fulfilled(이행==완료): 비동기 처리가 완료되어 결과 값을 반환해준 상태

인자인 resolve 를 실행 시 Fulfilled 상태가 된다. 

이행 상태가 되면 then()을 이용해 처리 결과 값을 받을 수 있다. 

3. Rejected(실패) : 인자인 reject()을 통해 실패 상태를 만든다.

실패 상태가 되면 실패한 이유를 catch()를 통해 받을 수 있다.

 

여러 개의 프로미스 연결하기 

여러 개의 프로미스를 연결하여 사용할 수 있다. 

then() 호출 시 새로운 객체를 여러 개 호출 가능 

==> setTimeout()을 사용해 비동기 처리 

 

서비스 구현 시 네트워크 에러, 서버 문제 등으로 오류 시 

==> catch()로 처리 권장 첫 번째 콜백 함수 내부에서 오류가 나는 경우 오류를 잡지 못한다. 

 

728x90