Promise는 주로 서버에서 받아온 데이터를 화면에 표시할 때 사용한다. 일반적으로 웹을 구현할 때 서버에서 데이터를 요청하고 받아오기 위해 사용한다.
promise
는 3가지 상태를 가질 수 있다.
new Promise(resolve,reject)
const promise = new Promise((resolve, reject() => {
setTimeout() => {
resolve("성공");
reject(new Error("실패"))
}, 2000);
)};
promise.then((value) => {
console.log(value); ///"성공"
})
.catch(error =>{
console.log(error)
})
.finally{() => (
console.log("");
});
///value는 promise가 정상적으로 실행되어 resolve 인자로 전달하는 값
///error는 promise가 작동하지 않아 reject 인자로 전달하는 값
/// finally는 성공하든 실패하든 상관없이 무조건 호출되는 값
const test = new Promise((resolve, reject) => {
setTimeout(() => resolve(1), 1000);
});
test
.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));
const getHen = () =>
new Promise((resolve, reject) => {
setTimeout(() => resolve('🐓'), 1000);
});
const getEgg = hen =>
new Promise((resolve, reject) => {
setTimeout(() => reject(new Error(`error! ${hen} => 🥚`)), 1000);
});
const cook = egg =>
new Promise((resolve, reject) => {
setTimeout(() => resolve(`${egg} => 🍳`), 1000);
});
getHen() //
.then(getEgg)
.then(cook)
.then(console.log)
.catch(console.log);