mingg IT

[Javascript] Promise 본문

FrontEnd

[Javascript] Promise

mingg123 2021. 1. 10. 18:43

Promise : 비동기 상태를 값으로 다룰 수 있는 객체

 

Promise이전엔 콜백이 많이 쓰임

 

Promise를 사용하면 비동기 프로그래밍을 할 때 코드를 순차적으로 작성할 수 있음

 

Promise의 3가지 상태

1. 대기중(pending) : 결과를 기다리는중

2. 이행됨(fulfilled) : 수행이 정상적으로 끝났고 결괏값을 가지고 있음

3. 거부됨(rejected) : 수행이 비정상적으로 끝났음

 

then은 처리됨 상태가 된 프로미스를 처리할 때 사용되는 메서드

 

Promise를 나타낼때는 then, catch로 나타낸다.

 

 

Promise.all : 여러개의 프로미스를 병렬로 처리할 때 사용하는 함수

 

Promise.race : 여러 개의 프로미스 중에서 가장 빨리 처리된 프로미스를 반환 하는 함수

 

Promise.race([

requestData(),

new Promise((_, regect) => setTimeout(reject, 3000)),

])

.then(data=> console.log(data))

.catch(error => console.log(error));

 

Promise 사용 시 주의할 점

Promise.resolve(10)

.then(data=>{

console.log(data);

Promise.resolve(20);  //이렇게 사용해주어야함.

})

.then(data => {

console.log(data);   // undefined 출력됨 

});

 

await 키워드는 async await 함수 내부에서 사용된다. 

 

프로미스는 생성과 동시에 비동기 코드가 실행됨. 

 

Thenable은 프로미스처럼 동작하는 객체

 

Comments