Promise   프라미스 객체

(2022-05-08)

프로미스, 프라미스


1. Promise 객체

  ㅇ `비동기 작업`과 `그 작업 완료 결과에 따라 해야 할 일`을 캡슐화일급 객체

  ㅇ 장래에 일어날 결과에 따라, 선택적으로 어떤 함수를 실행(호출)할 것을 약속 함
     - 즉, 장래 작업 완료 시에, 그 결과 (success,fail)에 따라,
     - 이에 적절히 대응하는 메소드 즉, 콜백함수 (promise 객체캡슐화됨)를 호출 함

  ㅇ [참고용어] 
     - 일급객체 : 함수의 입력(매개변수),출력(리턴값)에 쓰일 수 있는 객체
     - 콜백함수 : 다른 함수인수로써 넘겨질 수 있는 함수


2. Promise 객체의 생성 및 진행과정

  ㅇ promise 생성자 문법 예시
      
const promise = new Promise( (resolve, reject) => {
    if (success) resolve(value);    // 비동기 작업 성공시, 수행되는 콜백함수
    else reject(error);             // 비동기 작업 실패시, 수행되는 콜백함수
});
ㅇ promise 생성 및 진행 과정 - 비동기 동작의 요청/호출이 필요할 때 (aync call), - 미리 정의된 promise 객체를 생성하면서 (promise object created), . 이때, 2개 인수로써, resolve(),reject()를 전달 받음 - 작업 진행 상태를 구분하고 (pending 등), ☞ 아래 4.항 참조 - 결과 처리를 함 (outcome) . 결과(success:성공,fail:실패)에 대한 리턴값(value,error) 전달 ㅇ promise 결과 리턴 및 처리 - 작업 결과에 따른 리턴값 전달 (return) . 비동기 작업 요청시 생성된 promise 객체는, . 작업 결과(success:성공,fail:실패)에 따라, . 각각 그에맞는 리턴 값을 전달 함 - 결과 처리 (method) . 작업 결과(success:성공,fail:실패)에 따라, 그에맞는 메소드 실행 . 성공시, 실행 메소드로써 콜백함수 resolve(성공 결과값)을 호출 . 실패시, 실행 메소드로써 콜백함수 reject(실패 오류값)를 호출 - 한편, promise 객체의 결과 처리를 위한 체이닝 방법으로써, ☞ 아래 3.항 참조 . then() 및 catch()가 있음 3. Promise 객체메소드 ※ 생성된 promise 객체는, 비동기 작업 결과에 따라, - 그에맞는 콜백함수를 then(),catch()에 인수로써 전달함 ㅇ then 메소드 : 성공시 처리할 메소드 - promise.then(success_cb, fail_cb) . promise : 생성된 promise 객체 . success_cb : 성공시 콜백함수 (promise 객체 내 resolve에 의해 호출됨) . fail_cb : 실패시 콜백함수 (promise 객체 내 reject에 의해 호출됨) ㅇ catch 메소드 : 거절(실패)시 처리할 메소드 - promise.catch(fail_cb) . promise : 생성된 promise 객체 . fail_cb : 실패시 콜백함수 (promise 객체 내 reject에 의해 호출됨) 4. Promise 객체의 (비동기 처리) 진행 상태 구분 ㅇ 대기중 (pending) : `진행중 (unsetted)` - 프로미스가 생성된 직후 ㅇ 이행됨 (fulfilled) : `처리후 (settled)` - resolve 함수 호출. 즉, 비동기 처리 성공시 ㅇ 거부됨 (rejected) : `처리후 (settled)` - reject 함수 호출. 즉, 비동기 처리 실패시



"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"