본문 바로가기
JavaScript

JavaScript 기초(30)_프로미스(1) promise

by DeBanker.K 2021. 10. 28.

1. promise의 3가지 상태 (대기, 이행, 거부)

: 프로미스는 자바스크립트 비동기 처리에 사용되는 객체이다.

자바스크립트의 비동기 처리란

‘특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성’을 의미한다.

 

아래의 코드를 보면 따로 정의하지 않아도 promise가 내장되어 있음을 알 수 있다.

console.log(Promise);
[Running] 
[Function: Promise]

 

생성자를 통해서 프로미스 객체를 아래와 같이 만들 수 있다. 

new Promise(/* executor */ (resolve, reject) => {});

resolve와 reject 인자를 가지는 executor 함수를 통해서 생성할 수 있다. 

(물론 resolve, reject 둘 다 함수이다.)

 

프로미스는 3가지의 상태로 나눌 수 있다.

 

첫 번째로는 대기상태(pending)가 있다.

new Promise((resolve, reject) => {});

그냥 프로미스 객체를 생성하면 바로 대기(pending) 상태가 된다.

 

 

두 번째로는 이행상태(fufilled)이다.

new Promise((resolve, reject) => {
    //...
    //...
    resolve();
});

... 들과 같은 비동기 상태 이후 resolve()가 실행되면 이행상태(fulfilled)가 된다.

 

 

마지막으로 거부상태(rejected)이다. 

new Promise((resolve, reject) => {
    //...
    //...
    reject();
});

... 들과 같은 비동기 동작 이후 reject()가 실행되면 거부 상태(rejected)가 된다. 

 

 

 

댓글