Promsie란?
js에서 제공하는 비동기 간편하게 처리 도와주는 obj.
callback 대신
언제 작업 완료될 지 모름 but 약속
ㄴ Promise에 등록하면 나중에 알려 줌
기능 처리 후 성공, 실패 알려줌
ㄴ resolve, reject
// promise 만들어지면 executer 콜백 함수 바로 실행 됨
const promise = new Promise((resolve, reject) => {
console.log('doing something...');
setTimeout(() => {
resolve('done'); // 성공일 때 값 전달
}, 2000);
});
// 1. Producer
// promise 만들어지면 executer 콜백 함수 바로 실행 됨
const promise = new Promise((resolve, reject) => {
console.log('doing something...');
setTimeout(() => {
resolve('done'); // 성공일 때 값 전달
}, 2000);
});
// 2. Consumer
promise.then((value) => { // value는 resolve에 전달된 값
console.log(value); // done
})
.catch(error => {
console.log('error');
})
const fetchNum = new Promise((resolve, reject) => {
setTimeout(() => resolve(1), 1000);
});
fetchNum
.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)); // 5