๐ฉ๐ป๐ป await ํจ์
Promise์ ์ฑ๊ณต ๊ฒฐ๊ณผ ๊ฐ์ ๋ฐ์์ค๋ ค๋ฉด ํจ์ ์์ await์ ์ฌ์ฉํ๋ค
async์ ํจ์๋, ํ์ผ module์ ์ต์์ ๋ ๋ฒจ์์๋ง ์ฌ์ฉํ ์ ์๋ค. ์ฌ๊ธฐ์ module์ ES6 ๋ชจ๋์ ์๋ฏธ
๐ฉ๐ป๐ป await์ ์ญํ
- fetchํจ์๋ Promise ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํ๋ค.
- fetch ์์ await๋ฌธ์ด ์์ผ๋ฉด Promise๊ฐ Fulfilled ์ํ๊ฐ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ๋ค.
- Promise๋ ์ธ ๊ฐ์ง ์ํ๋ฅผ ๊ฐ๋๋ค.
- Pending (๋ฏธ๊ฒฐ์ ) : ๋น๋๊ธฐ ์์ ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ ๋
- Fulfilled (์ฑ๊ณต) : ๋น๋๊ธฐ ์์ ์ ์ฑ๊ณต์ ์ผ๋ก ๋๋ฌ์ ๋
- Rejected (์คํจ) : ๋น๋๊ธฐ ์์ ์ด ์คํจํ์ ๋
- ๋น๋๊ธฐ ์์ ์ด ์๋ฃ๋๋ฉด Promise๊ฐ ์์ ๊ฒฐ๊ณผ๋ฅผ ์๋ ค์ค๋ค. ์ด๋, await๋ก ํ์ฉํ๋ค.
๐ Pending ์ํ
await๋ฅผ ์จ์ฃผ๋ฉด Promise๊ฐ FullFilled, Rejected ์ํ๊ฐ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ๋ค.
๐ Fulfilled ์ํ
- await์ ์ฌ์ฉํ๋ฉด Promise๊ฐ Fulfilled ์ํ์ผ ๋ ๊ฒฝ์ฐ ๋น๋๊ธฐ ์์ ์ ๊ฒฐ๊ณผ, fetch์ ๊ฒฝ์ฐ response๋ฅผ Promise์ ๊ฒฐ๊ณผ ๊ฐ์ผ๋ก ๊ฐ๊ฒ ๋๋ค.
- await์ Promise์ ๊ฒฐ๊ณผ ๊ฐ์ ๊บผ๋ด์ ๋ฆฌํดํด ์ค๋ค.
๐ง๐ค๐ง async์ await๋ฅผ ํ ์ ์ฒ๋ผ
fetch ์์ async-await ๋ฌธ์ด ์์ผ๋ฉด Promise๊ฐ Fulfilled ์ํ๊ฐ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๋์, ๋ค์ ํจ์ ๋ฐ์ผ๋ก ๊ฐ์ ์ฝ๋๋ฅผ ์คํํ๋ค.
๐ฉ๐ป๐ปasync ํจ์์ ํน์ง
ํญ์ Promise๋ฅผ ๋ฆฌํดโ
Promise๋ฅผ ๋ฆฌํดํ๋ ์ด์ ์ค๋ช
- ๋น๋๊ธฐ ํจ์๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋น๊ต์ ์ค๋ ๊ฑธ๋ฆฌ๋ ์์ ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด์์ด๋ค.
- async-await fetch ์์ ์ ํ๋ ค๋ฉด ๊ฝค ์ค๋ ๊ฑธ๋ฆฌ๋๋ฐ
- ๋น๋๊ธฐ ํจ์๋ฅผ ํธ์ถํ๋ฉด ๋ฆฌํด๊ฐ์ ๋ฐ๋ก ์ ์ ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค,
- ๊ทธ๋์ ์ผ๋จ Promise๋ฅผ ๋ฆฌํดํด ์ค๋ค.
- ํจ์์ body๊ฐ ๋ค ์คํ๋๊ณ ๋ฆฌํด๊ฐ์ด ์ ํด์ง๋ฉด
- Promise๋ฅผ Fulfilled ์ํ๋ก ๋ฐ๋๊ณ
- ํจ์์ ๋ฆฌํด๊ฐ์ Promise์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ์ฑ์์ค๋ค.
'๐ฉ๐ปโ๐ป ํ๋ก๊ทธ๋๋ฐ ์ธ์ด > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋น๋๊ธฐ ์์ ๋๊ตฌ] - then() ๋ฉ์๋ (0) | 2024.07.25 |
---|---|
[Callback] - ์ฝ๋ฐฑ ํจ์์ ๋ํด์ ์์๋ณด์ (0) | 2024.07.25 |
[๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์] - Promise (0) | 2024.07.24 |
[๋ ผ๋ฆฌ ์ฐ์ฐ์] - OR / AND (0) | 2024.07.22 |
[Javascript] - this์ ๋ํด์ ์์๋ณด์ (0) | 2024.07.19 |