header-img
Info :
728x90


// settimeout : μ‹€ν–‰ν•  ν•¨μˆ˜, μ΄ˆ(밀리세컨 λ‹¨μœ„)


[callback]

μ½œλ°±ν•¨μˆ˜ : κ°„λ‹¨ν•˜κ²Œ λ‹€λ₯Έ ν•¨μˆ˜μ— λ§€κ°œλ³€μˆ˜λ‘œ λ„˜κ²¨μ€€ ν•¨μˆ˜λ₯Ό μ˜λ―Έ
λ§€κ°œλ³€μˆ˜λ‘œ λ„˜κ²¨λ°›μ€ ν•¨μˆ˜λŠ” μΌλ‹¨ λ§€κ°œλ³€μˆ˜ λ¨Όμ € λ„˜κ²¨λ°›μ•„λ‘” μƒνƒœμ—μ„œ
일정 μ‹œμ (λ•Œ)κ°€ λ˜λ©΄ λ‚˜μ€‘에 ν˜ΈμΆœ(call back)ν•œλ‹€λŠ” μ˜λ―Έ


// μ½œλ°±ν•¨μˆ˜κ°€ ν•„μš”ν•œ μ΄μœ 
1. λ³€μˆ˜μ˜ μœ νš¨λ²”μœ„ (scope)
2. λ™κΈ°/비동기(synchronous/Asynchronous)
 -> μ΄λŸ° κ±Έ μœ„ν•΄μ„œ ν•¨μˆ˜λ₯Ό ν™œμš©ν•˜λŠ” ν•˜λ‚˜μ˜ λ°©λ²•λ‘ μ μΈ λΆ€λΆ„

μœ μš©ν•œλ°.. λ‚΄κ°€ a~zκΉŒμ§€ console μ°λŠ” ν–‰μœ„λ₯Ό μ œμ–΄ν•˜κ³  μ‹ΆμœΌλ©΄ μ½”λ“œκ°€ λ„ˆλ¬΄ λ³΅μž‘해진닀..
-> Callback Hell

-- μž‘μ„±μž μž…μž₯μ—μ„œλŠ” ν¬κ²Œ λ¬Έμ œκ°€ μ•ˆλ  μˆ˜λ„ μžˆμœΌλ‚˜ μ΄κ±Έ μΆ”후에 λˆ„κ΅°κ°€ μœ μ§€λ³΄μˆ˜ ν•œλ‹€κ³  μƒκ°ν•˜λ©΄?
hell μ΄λ‹€.. κ·Έλž˜μ„œ callback hell 

μ—¬λŸ¬λ²ˆ ν•„μš”ν•œλ° μ—¬λŸ¬λ²ˆ μ“°λ©΄ κ°€λ…μ„± + μœ μ§€λ³΄μˆ˜μ„±μ΄ λ–¨μ–΄μ§€λŠ” ν–‰μœ„λ₯Ό λ§‰κΈ° μœ„ν•΄μ„œ λ‚˜νƒ€λ‚œκ²Œ promise 


[promise]

비동기 μ²˜λ¦¬λ₯Ό μœ„ν•œ ν•˜λ‚˜μ˜ νŒ¨ν„΄. callback ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜κ²Œ λœλ‹€.
es6 λΆ€ν„° μ μš©λœ κ°œλ…
전톡적인 callback νŒ¨ν„΄μ΄ κ°€μ§€λŠ” λ‹¨μ  (ex callback hell, μ—λŸ¬μ²˜λ¦¬ νž˜λ“¬) μ„ λ³΄μ™„ν•˜λ©΄μ„œ
비동기 μ²˜λ¦¬ μ‹œμ μ„ λͺ…ν™•ν•˜κ²Œ ν‘œν˜„ν•  μˆ˜ μžˆκ²Œ ν•΄μ€€λ‹€.

resolve μ™€ reject // ν•΄κ²°ν–ˆλ‹€. κ±°μ ˆν–ˆλ‹€. μƒνƒœκ°’μœΌλ‘œ μƒκ°ν•˜λ©΄ λœλ‹€.


---
promise all
-> μ—¬λŸ¬ κ°œμ˜ promise λ“€μ„ λΉ„λ™κΈ°μ μœΌλ‘œ μ‹€ν–‰ν•˜μ—¬ μ²˜λ¦¬ν•  μˆ˜ μžˆλŠ”..

 


[basicChaining]
- getDataFromFilePromiseλ₯Ό μ΄μš©ν•΄μ„œ ν’€μ–΄μ•Ό ν•©λ‹ˆλ‹€ // 2번 λ¬Έμ œμ—μ„œ export ν•΄μ€¬λ˜ κ±° κ·Έκ±° μ΄μš©ν•΄λΌ

1. fs λͺ¨λ“ˆμ„ μ§μ ‘ μ‚¬μš©ν•˜λŠ” κ²ƒμ΄ μ•„λ‹™λ‹ˆλ‹€.
// λ­”κ°€ κ°„μ ‘μ μœΌλ‘œ λΆˆλŸ¬μ™€μ•Ό ν•˜λŠ” λ“― ?

2. getDataFromFilePromiseλ₯Ό μ΄μš©ν•΄, 'files/user1.json' νŒŒμΌκ³Ό 'files/user2.json' νŒŒμΌμ„ λΆˆλŸ¬μ˜€κ³ , 
두 νŒŒμΌμ„ ν•©μ³μ„œ μ΅œμ’…μ μœΌλ‘œ λ‘ κ°μ²΄κ°€ λ‹΄κΈ΄ λ°°μ—΄μ„ λ§Œλ“œλŠ” κ²ƒμ΄ λͺ©ν‘œμž…λ‹ˆλ‹€.
// μ–΄λ–€ μ΄ˆκΈ° λ°°μ—΄ λ§Œλ“€μ–΄μ„œ push ν•΄μ£Όλ©΄ λ˜μ§€ μ•Šμ„κΉŒ?

3. νŒŒμΌ κ²½λ‘œλ₯Ό μ°Ύμ„ λ•Œ, user1Path λ° user2Pathλ₯Ό μ΄μš©ν•˜μ„Έμš”.
// κΈ°λ³Έμ μœΌλ‘œ μž‘μ„±λ˜μ–΄ μžˆλ˜ λ³€μˆ˜? ν™œμš© ν•΄μ£Όμ„Έμš”

4. then이 μ–΄λ–€ λ§€κ°œλ³€μˆ˜λ₯Ό μ „λ‹¬λ°›λŠ”μ§€μ— λŒ€ν•œ μ΄ν•΄κ°€ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
// then μ€ value κ°’을 λ°›μ•„μ˜¬κ±°λ‹€... 

5. then의 λ¦¬ν„΄μ΄ λ¬΄μ—‡μ„ μ˜λ―Έν•˜λŠ”지 μ΄ν•΄ν•˜κ³  μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
// κ°€κ³΅μ΄ ν•„μš”ν•œ λ°μ΄ν„°λ‘œ κ°€μ§€κ³  μ˜¨λ‹€. κ·Έλž˜μ„œ μ‚¬μš©ν•˜λ €λ©΄ json νŒŒμ‹±μ„ ν•΄μ€˜μ•Ό ν•œλ‹€.

6. νŒŒμΌ μ½κΈ°μ˜ κ²°κ³Όκ°€ λ¬Έμžμ—΄μ΄λ―€λ‘œ, JSON.parseλ₯Ό μ‚¬μš©ν•΄μ•Ό λ¬Έμ œλ₯Ό ν•΄κ²°ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
// json.parse(value)

728x90
더보기
Document/λ¨•μ„ μƒμ˜ 코딩ꡐ싀