비동기를 간편하게 처리 할 수 있도록 도와줌
상태 : pending(수행중) fulfilled(완료됨) rejected(거절됨)
해당하는 데이터를 만들어 내는 producer vs 소비하는 consumer
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.
값이 정상적으로 수행이 된다면 값을 받아올거야.
promise.then((value) => {
console.log(value)
}
promise가 정상적으로 수행이 잘 되어서 마지막에 최종적으로
resolve라는 콜백함수를 통해서 전달한 값이 value에 파라미터로 전달이 된다.
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)
})