๐จโ๐ป ์ค๋ ๊ณต๋ถํ ๊ฒ
๋๊ธฐ
: ์์ฐจ์ ์ผ๋ก ์ผ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์
๋น๋๊ธฐ
: ์ ๋๋ฆฌ ์๊ฒ ์ผ์ ๋ฉํฐํ์คํนํ๋ฉฐ ์ฒ๋ฆฌํ๋ ๋ฐฉ์
Promise๋ API๊ฐ ์๊ฒจ๋ ์ด์
: ์ฝ๋ฐฑ์ง์ฅ๋๋ฌธ..
ํ์ฌ setTimeout์ผ๋ก ๋น๋๊ธฐ๋ฅผ ์๋์ ์ผ๋ก ๊ตฌํํจ๋ง ๊ณต๋ถํ ํฐ๋ผ ๋น๋๊ธฐ๋ฅผ ์ ํํ ์ด๋ป๊ฒ ์จ์ผ ํจ์จ์ ์ผ์ง ๋ชฐ๋ผ ์ ๋๋ก๋ ์์ ๊ฐ ์๋์ง๋ง ์ด๋ ๋ฏ ์ฌ๋ฌ๊ฐ์ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ด๋ฐ์์ผ๋ก ์ฝ๋๋ฅผ ๊ตฌํํ๊ฒ ๋๋ฉด ๊ฐ๋ ์ฑ์ด ๊ต์ฅํ ๋จ์ด์ง๋ฏ๋ก ์๊ฒจ๋ ๊ฒ์ด Promise์ด๋ค.
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));
๋ํ ๊ทธ๋ฌํ Promise๋ฅผ ๋ ๊ฐํธํ๊ฒ ์ฐ๋ ํค์๋์ธ async, await ํค์๋๋ ์์๋ดค๋ค.