Promise

김세주·2021년 2월 2일
0

JavaScript

목록 보기
10/12

비동기를 간편하게 처리 할 수 있도록 도와줌

상태 : pending(수행중) fulfilled(완료됨) rejected(거절됨)

해당하는 데이터를 만들어 내는 producer vs 소비하는 consumer

1. Producer 만들기

const promise = new Promise((resolve, reject) => {
    //doing dome heavy work ()
    console.log('doing something')
})

이러면 promise가 만들어지는 순간 일을 수행함.

executor (resolve, reject) => {
    //doing dome heavy work ()
    console.log('doing something')
}

// when new Promise is created, the executor runs automatically.

2. Consumers : then, catch, finally

값이 정상적으로 수행이 된다면 값을 받아올거야.

promise.then((value) => {
	console.log(value)
}

promise가 정상적으로 수행이 잘 되어서 마지막에 최종적으로
resolve라는 콜백함수를 통해서 전달한 값이 value에 파라미터로 전달이 된다.

만약 reject를 쓴다면?

then 으로 안된다. => 마지막 catch로 에러를 어떻게 처리할 건지 해주면 된다.

const promise = new Promise((resolve, reject) => {
    //doing dome heavy work ()
    
    setTimeout(() => {
       
        // resolve('ellie');
        reject(new Error('no network'))
    },2000)
   
})

promise
.then( value => {
    console.log(value)
})

.catch( error => {
    console.log(error)
})
profile
시간은 내 편이다.

0개의 댓글