44์ฅ: Rest API
45์ฅ: ํ๋ก๋ฏธ์ค
- ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋จ์
- ์ฝ๋ฐฑ ํจํด -> ์ฝ๋ฐฑ ์ง์ฅ
- ์๋ฌ ์ฒ๋ฆฌ ๊ณค๋ -> ๋น๋๊ธฐ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ ์ธ๋ถ ๋ฐํX, ์์ ์ค์ฝํ ๋ณ์ ํ ๋นX
ํ๋ก๋ฏธ์ค
- ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ํ์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฐ์ฒด
- new Promise๋ก ํ๋ก๋ฏธ์ค ๊ฐ์ฒด ์์ฑ
- resolve, reject ์ธ์๋ฅผ ๋ฐ์
- ๋น๋๊ธฐ ์ฑ๊ณต์ -> resolve ํจ์ ์คํ -> promise๋ฅผ fulfilled ์ํ๋ก ๋ณ๊ฒฝ
- ๋น๋๊ธฐ ์คํจ์ -> reject ํจ์ ์คํ -> promisefmf rejected ์ํ๋ก ๋ณ๊ฒฝ
- ๋น๋๊ธฐ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ ๊ฐ์ง๊ณ ์์
- ํ์ ์ฒ๋ฆฌ ๋ฉ์๋ -> .then, .catch, .finally
ํ๋ก๋ฏธ์ค ์ฒด์ด๋
- then, catch, finally ํ์ ์ฒ๋ฆฌ ๋ฉ์๋๋ ์ธ์ ๋ promise๋ฅผ ๋ฐํ ํ๊ธฐ ๋๋ฌธ์ ํ์ ์ฒ๋ฆฌ ๋ฉ์๋๋ฅผ ์ฐ์์ผ๋ก ์ธ ์ ์์
- ํ์ ์ฒ๋ฆฌ ๋ฉ์๋์ ์ฝ๋ฐฑํจ์๋ ํ๋ก๋ฏธ์ค์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ ํ์ ์ผ๋ก ํธ์ถ๋จ
ํ๋ก๋ฏธ์ค ์ ์ ๋ฉ์๋
- Promise.resolve/reject -> ๊ฐ์ ๋ํํ์ฌ promise๊ฐ ์์ฑ
- Promise.all -> ๋น๋๊ธฐ ๋ณ๋ ฌ์ฒ๋ฆฌ - ์์๋๋ก
- Promise.race -> ๊ฐ์ฅ ๋จผ์ fulfilled๋ ํ๋ก๋ฏธ์ค๋ฅผ ๋ฐํ
- Promise.allSettled -> ๋ชจ๋ settled ์ํ๊ฐ ๋๋ฉด ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด๋ก ๋ฐํ
๋ง์ดํฌ๋กํ์คํฌ ํ
- ํ๋ก๋ฏธ์ค ํ์ ์ฒ๋ฆฌ ๋ฉ์๋๋ ๋ง์ดํฌ๋กํ์คํฌ ํ์ ์์ ์ ์ฅ๋จ
- ๋ค๋ฆ ํจ์ ํน์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ์์ ์ ์ฅ๋๋ ํ์คํฌ ํ ๋ณด๋ค ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ๋จ(์ฐ์ ์์๊ฐ ๋์)
fetch
- HTTP ์๋ต์ ๋ํ๋ด๋ response๊ฐ์ฒด๋ฅผ ๋ํํ promise ๊ฐ์ฒด ๋ฐํ
- ์๋ต body๋ฅผ ์ป์ผ๋ ค๋ฉด response.json()์ ํตํด ์ป์ ์ ์์
- ์๋ต body๋ฅผ ์ป์ด ์ญ์ง๋ ฌํํด์ ๋ฐํ
- fetch ์๋ฌ ์ฒ๋ฆฌ
- ์๋ฌ๊ฐ ๋ฐ์์ response.ok์ ๋ถ๋ฆฌ์ธ ๊ฐ์ false๋ก ์ค์ ํจ
- response.ok๋ก ์๋ฌ์ฒ๋ฆฌ ํด์ผํจ
46์ฅ: ์ ๋๋ ์ดํฐ์ async/await
- ์ ๋๋ ์ดํฐ: ์ฝ๋ ๋ธ๋ก์ ์คํ์ ์ผ์ ์ค์งํ๋ค๊ฐ ๋ค์ ์ฌ๊ฐ ํ ์ ์๋ ํน์ ํจ์
- function* ๋ก ์ ์
- ํจ์ ํธ์ถ์์๊ฒ ํจ์ ์คํ ์ ์ด๊ถ ์๋
- ํธ์ถ์์ ํจ์ ์ํ ์ฃผ๊ณ ๋ฐ์
- ์ ๋๋ ์ดํฐ ๊ฐ์ฒด๋ฅผ ๋ฐํ
- ์ดํฐ๋ฌ๋ธ & ์ดํฐ๋ ์ดํฐ
- ์ดํฐ๋ฌ๋ธ -> Symbol.iterator ๋ฉ์๋ ์์
- ์ดํฐ๋ ์ดํฐ -> ์ดํฐ๋ ์ดํฐ ๋ฆฌ์ ํธ๊ฐ์ฒด(value, done), next() ๋ฉ์๋
์ผ์์ค์ง, ์ฌ๊ฐ
47์ฅ: ์๋ฌ ์ฒ๋ฆฌ
- ์์ธ์ ์ธ ์ํฉ์์ ๋ฐํ๊ฐ์ผ๋ก if๋ฌธ ์ฒ๋ฆฌ
- ์๋ฌ์ฒ๋ฆฌ ์ฝ๋ ๋ฏธ๋ฆฌ ๋ฑ๋ก
-
try ... catch ... finally ...
-
try๋ฌธ ์คํ, ์๋ฌ ๋ฐ์ -> catch(err) ์๋ฌ err์ ๋ฐ์ -> finally ์๋ฌ ์๊ด์์ด ๋ฌด์กฐ๊ฑด ํ ๋ฒ ์คํ
-
Error ๊ฐ์ฒด
const error = new Error('invalid')
- message ํ๋กํผํฐ -> ์์ฑ์ ํจ์์ ์ธ์๋ก ์ ๋ฌํ ๋ฉ์ธ์ง
- stack ํ๋กํผ์น -> ์๋ฌ๋ฅผ ๋ฐ์์ํจ ์ฝ์คํ ํธ์ถ ์ ๋ณด ๋ฌธ์์ด
- 7๊ฐ์ ์๋ฌ ๊ฐ์ฒด๊ฐ ์กด์ฌํจ
-
throw ๋ฌธ
- ์๋ฌ ๊ฐ์ฒด๋ฅผ ๋์ง๋ ์ฉ๋ -> catch์์ ๊ทธ ์๋ฌ๋ฅผ ๋ฐ์
-
์๋ฌ ์ ํ
- ์๋ฌ๋ ํธ์ถ์ ๋ฐฉํฅ์ผ๋ก ์ ํ๋จ(์คํ ์ปจํ
์คํธ ์์์ ๋ฐ์ผ๋ก)
=> ์ ์ญ์์ ์บ์น ๊ฐ๋ฅํ๋ค!