D+65
- ๋น๋๊ธฐ ํธ์ถ์ ๋ํ ๋์ ์๊ฐ -
(๋น๋๊ธฐ ์ง๋ฌธ์ ๋ตํ๊ธฐ)
• Promise ์คํํจ์๊ฐ ๊ฐ์ง๊ณ ์๋ ๋๊ฐ์ ํ๋ผ๋ฏธํฐ resolve, reject๋ ๊ฐ๊ฐ ๋ฌด์์ ์๋ฏธํ๋์?
resolve์ reject๋ ๋น๋๊ธฐ ์คํ์ด ์ฑ๊ณต๊ณผ ์คํจ์์ ๊ฐ๊ฐ ๋์ํ๋ ํ๋ผ๋ฏธํฐ๋ก
resolve๋ ๋น๋๊ธฐ ์คํ์ด ์ ๋๋ก ๋์ํ์ ๊ฒฝ์ฐ์ ์๋ํ๋ ๊ฒ์ด๊ณ , reject๋ ๋น๋๊ธฐ ์คํ์ค ์๋ฌ๊ฐ ๋ฐ์ํ์ ๋์ ์๋ํ๋ ๊ฒ์ด๋ค.
• new Promise( )๋ฅผ ํตํด ์์ฑํ Promise ์ธ์คํด์ค์๋ ์ด๋ค ๋ฉ์๋๊ฐ ์กด์ฌํ๋์?
Promise ์ธ์คํด์ค๋ก๋ .then๊ณผ .catch ๊ทธ๋ฆฌ๊ณ .finally๊ฐ ์๋๋ฐ
.then์ ๋น๋๊ธฐ ์คํ์ด ์ ๋๋ก ๋์ํ์ ๋ ์๋ํ๋ resolve๋ฅผ ํตํด ๋ฐ์ ์ธ์๋ฅผ .then์ ์ด์ฉํด ์ฒ๋ฆฌํ ์ ์๋ค.
.catch๋ ๋น๋๊ธฐ ์คํ์ด ์ ๋๋ก ์๋ํ์ง ์์์๋ ๋์ํ๋ reject๋ฅผ ํตํด ๋ฐ์ ์ธ์๋ .catch๋ฅผ ์ด์ฉํด ์ฒ๋ฆฌํ ์ ์๋ค.
๋ง์ง๋ง์ผ๋ก .finally๋ ๋น๋๊ธฐ ์คํ์ด ์ ๋๋ก ๋์ํ๋, ์ํ๋ ์๊ด์์ด ๋ฌด์กฐ๊ฑด ๋์๊ฐ ์ ์๊ฒ ํ๋ ๋ฉ์๋ ์ด๋ค.
• Promise.prototype.then ๋ฉ์๋๋ ๋ฌด์์ ๋ฆฌํดํ๋์?
resolve์ ๊ฐ์ ๋ฐ์ ๋ฆฌํดํ๋ค.
• Promise.prototype.catch ๋ฉ์๋๋ ๋ฌด์์ ๋ฆฌํดํ๋์?
๋น๋๊ธฐ๊ฐ ์ ๋๋ก ์๋๋์ง ์์ reject์ ๊ฐ์ ๋ฐ์ ๋ฆฌํดํ๋ค.
• Promise์ ์ธ ๊ฐ์ง ์ํ๋ ๊ฐ๊ฐ ๋ฌด์์ด๋ฉฐ, ์ด๋ค ์๋ฏธ๋ฅผ ๊ฐ์ง๋์?
๋๊ธฐ (pending) : ์ดํํ๊ฑฐ๋ ๊ฑฐ๋ถ๋์ง ์์ ์ด๊ธฐ์ํ.
์ดํ (fulfilled) : ์ฐ์ฐ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ์ํ.
๊ฑฐ๋ถ (rejected) : ์ฐ์ฐ์ด ์คํจํ ์ํ.
• await ํค์๋ ๋ค์์ ๋ฑ์ฅํ๋ ํจ์ ์คํ์ ์ด๋ค ํ์ ์ ๋ฆฌํดํ ๊ฒฝ์ฐ์๋ง ์๋ฏธ๊ฐ ์๋์?
await๋ async์ ์ง๊ฟ์ผ๋ก function ์์ async๋ฅผ ๋ถ์ฌ์ค ๋ค์์ ๋น๋๊ธฐ ์ ์ผ๋ก ์คํ๋๋ ๊ฒ๋ค ์์ await๋ฅผ ๋ถ์ฌ์ค์ ์ฌ์ฉํด ์ค๋ค.
์ด๋ await์ ๋ท ๋ถ๋ถ์ ํ๋ก๋ฏธ์ค ํ์ ์ ๋ฐํํ๋ ๊ฒ๋ค์ด์ด์ผ ํ๋ค.
• await ํค์๋๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ, ์ด๋ค ๊ฐ์ด ๋ฆฌํด๋๋์?
promise ๊ฐ์ด ๋ฆฌํด๋๋ค.
๋ฐ์ํ
'์๋ > Code-States' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[D+66] Web Architectures (0) | 2020.12.23 |
---|---|
[D+65] ์น ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ fetch (0) | 2020.12.23 |
[D+64] ๋น๋๊ธฐํธ์ถ๋ก ์์์ ์ดํ๊ธฐ (0) | 2020.12.21 |
[D+63] Immersive 3์ฃผ์ฐจ (0) | 2020.11.08 |
[D+62] ๊ฐ์ธ ๊ณต๋ถ (0) | 2020.11.07 |
๋๊ธ