์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- ํ๋กํ ์ฝ
- ๊ฐ๋ฐ์ํ์ต
- Vue.js
- js ajax
- react
- ๊ฐ๋ฐ์๊ณต๋ถ
- JS
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ฆฌ์กํธ
- ๋คํธ์ํฌ
- node.jsํ๋ก์ ํธ
- node.jsํ์ต
- ์ ๋ณด์ฒ๋ฆฌ์ฐ์ ๊ธฐ์ฌ
- ํ๋ก ํธ์๋๊ณต๋ถ
- ํ๋ก ํธ์๋ํ์ต
- jsํ์ต
- ์๋ฐ์คํฌ๋ฆฝํธ๊ธฐ๋ณธ
- node.js
- API
- ๊ฐ๋ฐ๊ณต๋ถ
- vue.jsํ์ต
- ํ๋ก ํธ์๋ ๊ณต๋ถ
- ํ๋ก ํธ์๋
- ์๋ฐ์คํฌ๋ฆฝํธ ํ์ต
- JavaScript
- nodejs
- ๊ฐ๋ฐ์์ง์
- ์๋ฐ์คํฌ๋ฆฝํธํ์ต
- node.js ํ์ต
- MongoDB
- Today
- Total
dada's
์๋ฐ์คํฌ๋ฆฝํธ ๋๊ธฐ์ ๋น๋๊ธฐ, Callback, Promise, Async&Await ๋ณธ๋ฌธ
์๋ฐ์คํฌ๋ฆฝํธ ๋๊ธฐ์ ๋น๋๊ธฐ, Callback, Promise, Async&Await
dykang 2022. 8. 25. 20:58
๐๋๊ธฐ(Synchronous)
: ๋๊ธฐ๋ ์์ฒญ์ ๋ณด๋ธ ํ ์๋ต์ ๋ฐ์์ผ์ง๋ง ๋ค์ ๋์์ด ์ด๋ฃจ์ด์ง๋ ๋ฐฉ์์ด๋ค. ๋ชจ๋ ์ผ์ด ์์ฐจ์ ์ผ๋ก ์คํ๋จ.
๐ ๋น๋๊ธฐ(Asynchronous)
: ์์ฒญ์ ์ฆ์ ์ฒ๋ฆฌํ์ง ์์๋ ๋๊ธฐ ์๊ฐ ๋์ ๋ ๋ค๋ฅธ ๋์์ด ์ด๋ฃจ์ด์ง๋ ๋ฐฉ์์ด๋ค. ๋ชจ๋ ์ผ์ด ๋ณ๋ ฌ์ ์ผ๋ก ์คํ๋จ.
[ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๐ก ]
1. ์ฌ์ฉ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ
๋ธ๋ผ์ฐ์ ํ๋ฉด์์ ๋ฐ์ํ๋ ์ฌ์ฉ์์ ์ด๋ฒคํธ๋ ์์ธก์ด ๋ถ๊ฐ๋ฅํ์ฌ ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ ํธ์ถ์ ์ํ๋ ๋ด์ฉ์ callbackํจ์์ ์ ๋ฌํ๊ฒ ๋๋ค. (ํด๋ฆญ์ด๋ ๋ง์ฐ์ค์ค๋ฒ ๋ฑ๋ฑ..)
2.๋คํธ์ํฌ ์๋ต ์ฒ๋ฆฌ
ํ๋ฉด๋จ์์ ์๋ฒ์๊ฒ ์์ฒญ์ ๋ณด๋์ ๋, ๊ทธ ์๋ต์ด ์ธ์ ์ฌ ์ง ์ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ์๋ฒ์ ๋ํ ์๋ต์ฒ๋ฆฌ๋ ๋น๋๊ธฐ ์ ์ผ๋ก ์ฒ๋ฆฌํด์ผ๋๋ค.
3. ํ์ผ์ ์ฝ๊ณ ์ฐ๋ ๋ฑ์ ํ์ผ ์์คํ ์์
4. ์๋์ ์ผ๋ก ์๊ฐ ์ง์ฐ์ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ (์๋๊ฐ์ ๊ฒ)
[ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์ ์ข ๋ฅ ๐ก ]
Callback
๋ง ๊ทธ๋๋ก ๋์ค์ ํธ์ถ๋๋ ํจ์๋ฅผ ๋งํ๋ค.
์ด๋ค ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ํน์ ์์ ์ ๋๋ฌํ์๋ ์์คํ ์์ ํธ์ถํ๋ ํจ์์ด๋ค.
Promise
๋น๋๊ธฐ ์ฒ๋ฆฌ์ ์ฌ์ฉ๋๋ ๊ฐ์ฒด์ด๋ค.
ES6๋ถํฐ callbackํจ์์ ๋จ์ ์ ๋ณด์ํด์ฃผ๋ฉฐ ์คํ์ด ์ฑ๊ณตํ๋์ง ์คํจํ๋์ง ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํด์ค๋ค.
new Promise()๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด์ ์ฝ๋ฐฑํจ์๋ฅผ ์ ์ธ ํ ์ ์๊ณ , ์ฝ๋ฐฑํจ์ ์ธ์๋ resolve,reject์ด๋ค. (resolve = ์ฑ๊ณต, reject = ์คํจ)
.then()์ ์ฌ์ฉํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ๋ณผ ์ ์๋ค.
์คํจ์ ๊ฒฝ์ฐ .then().catch()์ด๋ฐ์์ผ๋ก catch๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฌ๋ฅผ ๋ฐ์ผ๋ฉด ์๋ฌ ๋ด์ฉ์ ๋ ๋ช ํํ๊ฒ ์ ์ ์๋ค.
Async / Await
node.js 7.6์ด์๋ถํฐ ๊ตฌํ๋ ๊ธฐ๋ฅ์ด๋ค.
promise๋ณด๋ค ์ฝ๊ฒ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค.
์ฌ์ฉํ ํจ์ ์์ async๋ฅผ ์ ์ธ ํด์ฃผ๊ณ ๊ทธ ์์์ await๋ฅผ ์ฌ์ฉํ๋ฉด ํจ์์ ์์ ์ด ๋๋๊ณ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํํ ๋๊น์ง ๋๊ธฐํ๊ณ ๊ฐ์ด ๋ฆฌํด๋๋ฉด ๋ค์์์ ์ผ๋ก ๋์ด๊ฐ๋ค.
async์์์ promise๋ฌธ๋ฒ๋ ์ฌ์ฉ๊ฐ๋ฅํ๊ธฐ๋๋ฌธ์ chtch๋ก ์์ธ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค.
'Javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
var์ let์ ์ฐจ์ด, let์ ์จ์ผํ๋ ์ด์ (feat.ํธ์ด์คํ ) (2) | 2022.09.30 |
---|---|
Javascript ๋ชจ๋(๋ ธํธํ๊ธฐ) (0) | 2022.09.21 |
์๋ฐ์คํฌ๋ฆฝํธ๋ก tab๊ธฐ๋ฅ ๋ง๋ค๊ธฐ (0) | 2022.08.17 |
Javascript์์ this์ ๋ป (0) | 2022.07.31 |
alert, prompt, confirm (0) | 2022.06.28 |