When new Promise is created, executer runs automatically.
const promise = new Promise((resolve, reject) =>{
console.log("doing something....")
setTimeout(() => {
resolve('gyus')
//reject(new Error('no Network'));
}
)
})
Resolve : 콜백함수가 잘 처리되었을 때
Reject : 콜백 함수가 잘 못 처리되었을 때
promise
.then(value => {
console.log(value)
})
.catch(error => {
console.log(error);
})
.finally( () =>{
console.log("finally")
})
then : resolve의 값을 받는다.
catch : error의 값을 받는다.
finally : resolve든 reject든 무조건 실행된다.
Promise는 chaining해서 나타낼수 있다.
const fetchNumber = new Promise((resolve, reject) => {
setTimeout(() => resolve(1),1000)
})
fetchNumber
.then(num => num * 2)
.then(num => num * 3)
.then(num => {
return new Promise((resolve, reject) => {
setTimeout(()=>resolve(num-1),1000);
})
})
.then(num => console.log(num))