์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- async
- Project
- slow and steady
- prj
- https://m.blog.naver.com/tt2t2am1118/221010125300
- ๋๊ธฐ
- addEventListener
- mysql
- ํผํ
- sql
- database
- js
- callback
- https://youtube.com/playlist?list=PLuHgQVnccGMA5836CvWfieEQy0T0ov6Jh&si=FTaYv8m21EhO-A2K
- promise
- ์ฐธ๊ณ ๋ธ๋ก๊ทธ
- Porject
- object
- json
- await
- execCommand
- Import
- ๊ฒ์
- setTimeout()
- webpack
- ajax
- eport
- JS #ํ๋ก์ ํธ
- db
- ๋น๋๊ธฐ
- Today
- Total
C-log
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)์ ๊ตฌ๋ฌธ ๋ถ์์ด๋ค.) -> ๋ฐ๋ก ๋ค์ ๊ธ์ ํฌ์คํ ํ ์์ ์ด๋ค.
![](https://blog.kakaocdn.net/dn/nL0G3/btsaUiJcr3V/1WAl8aWqaOEEChqgAKunNK/img.jpg)
![](https://blog.kakaocdn.net/dn/buqYuV/btsaUleRfGJ/7kUCakitxNu8ee7jqXUTNK/img.jpg)
![](https://blog.kakaocdn.net/dn/bDIMWj/btsaUjuzPVf/xUuMoQKnlvkqK16pOPstGk/img.jpg)
![](https://blog.kakaocdn.net/dn/Iwf3E/btsaRMK3ltE/foj8eJYkAWkLxg1bszKAN0/img.jpg)
![](https://blog.kakaocdn.net/dn/QiKTV/btsaUlFUC8z/demMkqzX1N1NnhwEyozS51/img.jpg)
![](https://blog.kakaocdn.net/dn/pDa9U/btsaUkAelyy/MK4OGW1OgxErj1jEgylE2k/img.jpg)
promise : ์๋ฐ์คํฌ๋ฆฝํธ 12. ํ๋ก๋ฏธ์ค ๊ฐ๋ ๋ถํฐ ํ์ฉ๊น์ง JavaScript Promise | ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ ๋ฌธํธ (JavaScript ES6)
![](https://blog.kakaocdn.net/dn/bpeP5D/btsaRZRj7Wj/BuSCUbgpe5mQcWvHubMKK0/img.png)
{}๊ฐ ์๋ ๊ฒ๊ณผ ์๋ ๊ฒ์ ์ฐจ์ด๋ ๋ฐ๋ก ํจ์์ ์ ๊ณผ ์ฐ๊ด์ด ์๋ค. ์ ํจ์ ํํ์์ ์ฌ์ฉํ๋ฉด return์ ๊ฐ์ง์ง ์๊ณ ๋ฐ๋ก ๋ฐํ ๊ฐ์ ๋ฐ๋ก ๋ณ์์ ๋ด์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ์์ ์ฝ๋๊ฐ ์ ์์ ์ผ๋ก ์คํ์ด ๋๊ธฐ ์ํด ์์ ํ ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
return๋ฌธ์ ๋ฃ์ผ๋ฉด ์คํ์ด๋๋ค. ๋ฌผ๋ก ์์ ํจ์๋ ํ์ดํ์ด์ง๋ง ๋๊ดํธ('{}')๋ฅผ ํตํด์ ํจ์์ ์ ์ธ์ ํ๊ธฐ ๋๋ฌธ์ return์ ์ฌ์ฉํด์ผ ํ๋ค. ๋ฐ๋ผ์ ๋๊ดํธ๊ฐ ์๋ ํจ์์ ์ธํ๊ณ Promise .then์ ์ฌ์ฉํ๋ฉด ๋ฐํ๊ฐ(return)์ด ์๊ธฐ๋๋ฌธ์ undefined๊ฐ์ด ์ถ๋ ฅ๋๋ฉฐ Promise๋ ์ค๋ฅ๊ฐ ๋๋ค. ์๋ ์์ ์ฝ๋์ ์ฝ์์ ์ฐธ๊ณ ํ์
![](https://blog.kakaocdn.net/dn/X3aLf/btsaTY51KLf/ZIy5tAWVBxjJmMom1M7JlK/img.png)
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๊ฐ ์ ์ฉ์ด ๋๋ค.
![](https://blog.kakaocdn.net/dn/c364WK/btsbmT3neHS/F643DPqcz01lUwbJKQDRp1/img.png)
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
'๐JS > โกver.1' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS์ ํต์ฌ! ํผํ~ with async&await (0) | 2023.04.25 |
---|---|
JS์ ํต์ฌ! ํผํ~ with setTimeout()&Promise (0) | 2023.04.25 |
JS์ ํต์ฌ! async& await+Plus (0) | 2023.04.25 |
JS์ ํต์ฌ Promise+Plus (0) | 2023.04.25 |
JS์ ํต์ฌ! Introducing with DREAMCODING (0) | 2023.04.17 |