00. ๋๊ธฐ์ ๋น๋๊ธฐ
- ๋๊ธฐ์ : ์์ฒญ์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆผ
- ๋น๋๊ธฐ์ : ์์ฒญ์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ , ๋์์ ์ฌ๋ฌ ๊ฐ์ง ์์ฒญ์ ์ฒ๋ฆฌ ๊ฐ๋ฅ
01. Async & Await
JS๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋น๋๊ธฐ์ ์ ๋๋ค.
๊ทธ๋์ ์๋ฒ์ ์์ฒญํ๊ฑฐ๋ ์์ฐจ์ ์ผ๋ก ์ํ๋์ด์ผ ํ๋ ์ฝ๋๋ Async & Await์ผ๋ก ๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํ๋๋ก ํฉ๋๋ค.
/** ๋๊ธฐ์ */
async function sync() {
/** ์ฒซ ๋ฒ์งธ๋ก ์คํ๋ ํจ์ */
await f1();
/** ๋ ๋ฒ์งธ๋ก ์คํ๋ ํจ์ */
await f2();
/** ์ธ ๋ฒ์งธ๋ก ์คํ๋ ํจ์ */
await f3();
}
๋ง์ฝ f2๋ f1, f3 ์ ๊ฒฐ๊ณผ์ ์๊ด์๋ ํจ์์ผ ๊ฒฝ์ฐ๋ ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํด๋ ์๊ด์๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ด ๊ตฌํํฉ๋๋ค.
/** ๋๊ธฐ์ */
async function sync() {
/** ์ฒซ ๋ฒ์งธ๋ก ์คํ๋ ํจ์ */
await f1();
/** ์์ ์๊ด ์๋ ํจ์ */
f2();
/** ์ธ ๋ฒ์งธ๋ก ์คํ๋ ํจ์ */
await f3();
}
02. await ํ ํจ์ ๋ด์ ์ด๋ฏธ async๋ก ๊ตฌํ๋ ํจ์๋ฅผ ํธ์ถํ๋ค๋ฉด?
์ด๋ฏธ ํจ์ ์์ฒด๊ฐ async๋ก ๊ตฌํ๋์ด ์๋ค๊ณ ํด์, ์์๋๋ก ํธ์ถ๋์ง ์์ต๋๋ค.
ํ ํจ์ ๋ด์์ ์์ฐจ์ ์ผ๋ก ์ํ๋์ด์ผ ํ๋ ํจ์๊ฐ ์๋ค๋ฉด Async & Await์ผ๋ก ๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํ๋๋ก ํฉ๋๋ค.
/** ๋๊ธฐ์ */
async function sync() {
/** ์ฒซ ๋ฒ์งธ๋ก ์คํ๋ ํจ์ */
await f1();
/** ๋ ๋ฒ์งธ๋ก ์คํ๋ ํจ์ */
await f2();
/** ์ธ ๋ฒ์งธ๋ก ์คํ๋ ํจ์ */
await f3();
}
async function f2() {
await f4()
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
});
}
async function f4() {
try {
await axios
.get("api ์ฃผ์")
.then((res) => {
console.log(res);
});
...
} catch (err) {
console.log(err);
}
}
}
์๋,,๋ง๋....๐ ๐ ๐