JS์ ํต์ฌ! : Promise์ async ๊ทธ๋ฆฌ๊ณ await
YouTube Link | |
| ์๋ฐ์คํฌ๋ฆฝํธ 2. ์ฝ์์ ์ถ๋ ฅ, script async ์ defer์ ์ฐจ์ด์ ๋ฐ ์์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ ๊ณต๋ถ ๋ฐฉํฅ | ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ ๋ฌธํธ (JavaScript ES5+) | |
| https://youtu.be/tJieVCgGzhs | |
| ์๋ฐ์คํฌ๋ฆฝํธ 12. ํ๋ก๋ฏธ์ค ๊ฐ๋ ๋ถํฐ ํ์ฉ๊น์ง JavaScript Promise | ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ ๋ฌธํธ (JavaScript ES6) | |
| https://youtu.be/JB_yU6Oe2eE | |
| ์๋ฐ์คํฌ๋ฆฝํธ 13. ๋น๋๊ธฐ์ ๊ฝ JavaScript async ์ await ๊ทธ๋ฆฌ๊ณ ์ ์ฉํ Promise APIs | ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ ๋ฌธํธ (JavaScript ES6) | |
| https://youtu.be/aoQSOZfz3vQ |
๋์์๋ฆฌ : ์๋ฐ์คํฌ๋ฆฝํธ 2. ์ฝ์์ ์ถ๋ ฅ, script async ์ defer์ ์ฐจ์ด์ ๋ฐ ์์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ ๊ณต๋ถ ๋ฐฉํฅ | ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ ๋ฌธํธ (JavaScript ES5+)
๋ธ๋ผ์ฐ์ ๋ ํ์คํ์ค ์ฝ๋๋ค. (ํ์ฑ(parsing)์ ๊ตฌ๋ฌธ ๋ถ์์ด๋ค.) -> ๋ฐ๋ก ๋ค์ ๊ธ์ ํฌ์คํ ํ ์์ ์ด๋ค.






promise : ์๋ฐ์คํฌ๋ฆฝํธ 12. ํ๋ก๋ฏธ์ค ๊ฐ๋ ๋ถํฐ ํ์ฉ๊น์ง JavaScript Promise | ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ ๋ฌธํธ (JavaScript ES6)

{}๊ฐ ์๋ ๊ฒ๊ณผ ์๋ ๊ฒ์ ์ฐจ์ด๋ ๋ฐ๋ก ํจ์์ ์ ๊ณผ ์ฐ๊ด์ด ์๋ค. ์ ํจ์ ํํ์์ ์ฌ์ฉํ๋ฉด return์ ๊ฐ์ง์ง ์๊ณ ๋ฐ๋ก ๋ฐํ ๊ฐ์ ๋ฐ๋ก ๋ณ์์ ๋ด์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ์์ ์ฝ๋๊ฐ ์ ์์ ์ผ๋ก ์คํ์ด ๋๊ธฐ ์ํด ์์ ํ ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
return๋ฌธ์ ๋ฃ์ผ๋ฉด ์คํ์ด๋๋ค. ๋ฌผ๋ก ์์ ํจ์๋ ํ์ดํ์ด์ง๋ง ๋๊ดํธ('{}')๋ฅผ ํตํด์ ํจ์์ ์ ์ธ์ ํ๊ธฐ ๋๋ฌธ์ return์ ์ฌ์ฉํด์ผ ํ๋ค. ๋ฐ๋ผ์ ๋๊ดํธ๊ฐ ์๋ ํจ์์ ์ธํ๊ณ Promise .then์ ์ฌ์ฉํ๋ฉด ๋ฐํ๊ฐ(return)์ด ์๊ธฐ๋๋ฌธ์ undefined๊ฐ์ด ์ถ๋ ฅ๋๋ฉฐ Promise๋ ์ค๋ฅ๊ฐ ๋๋ค. ์๋ ์์ ์ฝ๋์ ์ฝ์์ ์ฐธ๊ณ ํ์

Promise ์ค์ต ์ฝ๋ : new Promise
Promise - JavaScript | MDN
Promise ๊ฐ์ฒด๋ ๋น๋๊ธฐ ์์ ์ด ๋ง์ดํ ๋ฏธ๋์ ์๋ฃ ๋๋ ์คํจ์ ๊ทธ ๊ฒฐ๊ณผ ๊ฐ์ ๋ํ๋ ๋๋ค.
developer.mozilla.org
++์ฌ๊ธฐ์ ๋ ๊น์ Promise๋ฅผ ์์๋ณด๊ธฐ ์ํด์ ๋ค์ ๊ธ์ธ Promise+Plus ํฌ์คํ ์ ํ์ธํ์.
| ' new Promise()๋ฅผ ๋ฐํํ๊ณ ์์ง๋ง, ํด๋น Promise๋ฅผ ๋ฐํํ์ง ์๊ณ ์๊ธฐ ๋๋ฌธ์ ์ธ๋ถ์์ ์ด Promise๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.' ์ด ๋ง์ด ์ดํด๊ฐ ์๊ฐ.. new Promise()์์ return์ด ์๋๊ฑธ ๊ทผ๋ฐ ์ด๋ค๊ฑธ ๋ฐํํ๋ค๋ ๊ฑฐ์ง? |
| new Promise()๋ Promise ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค. Promise ๊ฐ์ฒด๋ ๋น๋๊ธฐ ์์
์ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋๋ฐ, ์์
์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๋ฉด resolve ์ฝ๋ฐฑ์ ํธ์ถํ๊ณ ๊ฒฐ๊ณผ๊ฐ์ ์ ๋ฌํ๊ณ , ์์
์ด ์คํจํ๋ฉด reject ์ฝ๋ฐฑ์ ํธ์ถํ๊ณ ์๋ฌ๋ฅผ ์ ๋ฌํฉ๋๋ค. ์์ ์ฝ๋์์ new Promise((res) => { res("res"); })๋ res("res")๋ฅผ ์คํํ์ฌ "res"๋ผ๋ ๊ฐ์ผ๋ก ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ Promise ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์์ต๋๋ค. ํ์ง๋ง ์ด Promise ๊ฐ์ฒด๋ฅผ ๋ฐํํ์ง ์๊ณ ์๊ธฐ ๋๋ฌธ์, ์ธ๋ถ์์ ์ด Promise ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์, ์ด Promise ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋๋ก ์์ ํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ด Promise ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ ํจ์๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด, print() ํจ์๋ฅผ ํธ์ถํ์ฌ ๋ฐํ๋๋ Promise ๊ฐ์ฒด๋ฅผ ๋ค๋ฅธ ํจ์๋ ๋ณ์์ ํ ๋นํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
Promise+Plus ํฌ์คํ
์ "new Promise()๋ฅผ ๋ฐํํ๊ณ ์์ง๋ง, ํด๋น Promise๋ฅผ ๋ฐํํ์ง ์๊ณ ์๋ค"์ ์๋ฏธ๊ฐ ๋ฌด์์ธ์ง ํํค์ณ๋ณด์!
JS์ ํต์ฌ Promise+Plus
์ผ๊ธฐ JS์ ํต์ฌ Promise+Plus ๋ณธ๋ฌธ JS/JS:Main_Function JS์ ํต์ฌ Promise+Plus Rwoo 2023. 4. 25. 01:16
hi-code.tistory.com
| YouTube Link | |
| ์๋ฐ์คํฌ๋ฆฝํธ 5. Arrow Function์ ๋ฌด์์ธ๊ฐ? ํจ์์ ์ ์ธ๊ณผ ํํ | ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ ๋ฌธํธ(JavaScript ES6) | |
| https://youtu.be/e_lU39U-5bQ |
Arrowํจ์ ์ค์ต ์ฝ๋
async&await : ์๋ฐ์คํฌ๋ฆฝํธ 13. ๋น๋๊ธฐ์ ๊ฝ JavaScript async ์ await ๊ทธ๋ฆฌ๊ณ ์ ์ฉํ Promise APIs | ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ ๋ฌธํธ (JavaScript ES6)
| ๋น๋๊ธฐ | ์๋ก ๋ค๋ฅธ์ผ์ด ๋์์ ์ผ์ด๋๋ค.(๋ณ๋ ฌ์ฑ์ ๊ฐ๊น๋ค.) |
| ๋๊ธฐ | ์๋ก๊ฐ ๋ ์ ์๊ณ ์ค๋ก์ง ํ๋๋ก ๋ฌถ์ฌ ์์ด์ ์์ ์ด ์์ฐจ์ ์ผ ์ ๋ฐ์ ์๋ค. |
| ์ค๋ ๋(Thread) | ํ๋ก์ธ์ค ๋ด์์ ์คํ๋๋ ์์ ์์ ๋จ์๋ฅผ ๋งํฉ๋๋ค. ๊ฐ๊ฐ์ ์ค๋ ๋๋ ๋ ๋ฆฝ์ ์ธ ์คํ ๊ฒฝ๋ก๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ํ๋์ ํ๋ก์ธ์ค ๋ด์์ ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋๋ฅผ ์์ฑํ์ฌ ๋ณ๋ ฌ์ ์ผ๋ก ์์ ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ค๋ ๋๋ ์์ ๊ณต๊ฐ(Thread Context)์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด ๊ณต๊ฐ์ ์ค๋ ๋๊ฐ ์คํ๋ ๋ ์์ฑ๋๊ณ , ์ค๋ ๋๊ฐ ์ข ๋ฃ๋ ๋ ์๋ฉธ๋ฉ๋๋ค. ์ด ์์ ๊ณต๊ฐ์๋ ์ค๋ ๋์ ์คํ ์ํ๋ฅผ ์ ์งํ๊ธฐ ์ํ ๋ ์ง์คํฐ ๊ฐ, ์คํ, ๋์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ด ์ ์ฅ๋ฉ๋๋ค. |
async๋ฅผ ์ฌ์ฉํ๋ฉด promise๋ฅผ ์ฌ์ฉํ์ง ์์๋ promise๊ฐ ์ ์ฉ์ด ๋๋ค.

async.js ์ฝ๋ ๋ฆฌ๋ทฐ
๊ธฐ๋ณธ์ ์ผ๋ก ์ฐ๋ฆฌ๋ new Promise๋ฅผ ์์ฑํด์ ํ๋ ์์ฃผ ๊ธฐ๋ณธ์ ์ด ํํ์ด๋ค. ๋ฑํ ํฌ๊ฒ ๋ค๋ฃฐ ๋ถ๋ถ์ ์์ด๋ณด์ธ๋ค.
async_0.js ์ฝ๋ ๋ฆฌ๋ทฐ
๋ณธ๊ฒฉ์ ์ผ๋ก async๋ฅผ ์ฌ์ฉํ๋๋ฐ ์ฌ๊ธฐ์ async์ promise๊ฐ ์กด์ฌํ์ง ์๋๋ค. ๊ทธ ์ด์ ๋ async๋ด๋ถ์ promise๊ฐ ๋ด์ฅ๋์ด์๋ค. ๋ฐ๋ผ์ promise๋ฅผ ์์ฑํ์ง ์์๋ ์์์ ์์ฑ์ด๋๋ค.
async_1.js ์ฝ๋ ๋ฆฌ๋ทฐ
ํผํ๊ด๋ จ ํฌ์คํ ์์๋ miniํ๋ก์ ํธ๋ฅผ ์ ์ํ๋ ํฌ์คํ ์ด๋ค. Vanila ์๋ฒ๋ฅผ ๋ง๋ค์ด๋ณธ ํฌ์คํ ์ด๋ค.
JS์ ํต์ฌ! ํผํ~ with async&await
์ผ๊ธฐ JS์ ํต์ฌ! ํผํ~ with async&await ๋ณธ๋ฌธ JS/JS:Main_Function JS์ ํต์ฌ! ํผํ~ with async&await Rwoo 2023. 4. 25. 18:10
hi-code.tistory.com