TIL - 21.07.28 πŸ‘¨β€πŸ’» - Asynchronous

μ„±ν›ˆΒ·2021λ…„ 7μ›” 28일
0

TIL

λͺ©λ‘ 보기
41/59
post-thumbnail

TIL - 21.07.28 πŸ‘¨β€πŸ’»

  • 비동기 μŠ€ν”Œλ¦°νŠΈ
  • Promise 객체의 μ‚¬μš©λ²•μ„ μ΅ν˜”λ‹€.
  • Promise.All λ©”μ†Œλ“œ μ‚¬μš©λ²•
    • 인자둜 κΌ­ λŒ€κ΄„ν˜Έλ₯Ό μ”Œμ›Œμ„œ Promise 객체λ₯Ό λ„£λŠ”λ‹€.
  • async, await μ‚¬μš© 법
    • awaitλŠ” Promise 객체만 λ°›μœΌλ‚˜, λ‹€λ₯Έ μžλ£Œν˜•μ΄ 였면 Promise 객체둜 λ°”κΎΈμ–΄ 버린닀.
  • fetchλŠ” Node.js의 λ‚΄μž₯ λ©”μ†Œλ“œκ°€ μ•„λ‹ˆλΌ λΈŒλΌμš°μ €μ˜ λ©”μ†Œλ“œμ΄λ‹€.
  • fetch()λŠ” Promise 객체둜 데이터λ₯Ό λ°›μ•„μ˜¨λ‹€.
fetch(url)
  .then((response) => response.json()) // 자체적으둜 .json() λ©”μ†Œλ“œκ°€ μžˆλ‹€.
  .then((json) => console.log(json))
  .catch((error) => console.log(error))

μ—¬κΈ°μ„œ responseλŠ” fetch둜 λ°›μ•„μ˜¨ λ°˜μ‘ 정보가 λ‹΄κ²¨μžˆκ³ ,
이 response에 λ‚΄μž₯ λ©”μ†Œλ“œμΈ json()을 μ‹€ν–‰μ‹œν‚€λ©΄ Promise 객체 ν˜•νƒœλ‘œ λ°”λ€Œκ²Œ λœλ‹€.
즉, reponse.json()은 panding μƒνƒœμ˜ Promise 객체인 것이닀.
그리고 .then을 μ²΄μ΄λ‹ν•˜λ©΄ μ½œλ°±ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜(json)에 Promise 객체의 resolve 값이 λ‹΄κΈ°κ²Œ 되고,
( 이 경우 fetchν•œ 데이터 ) κ·Έ 데이터λ₯Ό μ‚¬μš©ν•˜λŠ” 것이닀.


GOOD πŸ˜‰

  • κΉƒν—ˆλΈŒ ν”„λ‘œν•„μ„ μ„€μ •ν–ˆλ‹€.

BAD πŸ˜₯

  • fetch λ°›μ•„μ˜¨ 데이터λ₯Ό Promise.All λ©”μ†Œλ“œλ‘œ μ²˜λ¦¬ν•˜λŠ” 것을 μ΄ν•΄ν•˜λŠ”λ° μ‹œκ°„μ΄ μ œλ²• κ±Έλ Έλ‹€.

TO DO πŸ”₯

  • λ„€νŠΈμ›Œν¬ μ„ ν–‰ν•™μŠ΅ν•˜κΈ°.
  • Promise.All 을 λΉ„λ‘―ν•œ Promise μ‚¬μš©λ²• μˆ™λ ¨.

Retrospect 🧐

κΉƒν—ˆλΈŒ ν”„λ‘œν•„μ„ μ„€μ •ν–ˆλ‹€.
μ½”μŠ€μŠ€ν…Œμ΄μΈ μ—μ„œ 같이 μŠ€ν„°λ””ν•˜λŠ” ν˜• ν”„λ‘œν•„μ„ λ²€μΉ˜λ§ˆν¬ν•΄μ„œ λ§Œλ“€μ—ˆλŠ”λ° ν™•μ‹€νžˆ λ­”κ°€ μ μ–΄λ†“μœΌλ‹ˆ νŽΈμ•ˆ~ ν•˜κ³  자주 λ“€μ–΄μ˜€κ³  μ‹Άκ³  μž”λ””μ‹¬κ³  μ‹Άκ³  그런 λŠλ‚Œμ΄ λ“ λ‹€.

κΉƒν—ˆλΈŒμ— μž”λ””μ‹¬λŠ”κ±Έ κ³ λ―Όν•΄λ΄€λŠ”λ°, 이 μ—­μ‹œλ„ μŠ€ν„°λ””ν•˜λŠ”, μ•Œκ³ λ¦¬μ¦˜μ— 진심인 ν˜•μ˜ κΉƒν—ˆλΈŒ 관리법을 μ’€ μ–΄κΉ¨λ„ˆλ¨Έλ‘œ λ°°μ›Œμ„œ λΈ”λ‘œκΉ…μ— ν¬μŠ€νŒ…ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ„ κΉƒν—ˆλΈŒμ—λ„ μ»€λ°‹ν•˜λŠ” μ‹μœΌλ‘œ 남기면 μ–΄λ–¨κΉŒ ν•˜λŠ” 생각이 λ“ λ‹€.

profile
μ–΄λ–»κ²Œ 이걸 ν’€μ–΄λ‚Ό 수 μžˆμ„κΉŒ

2개의 λŒ“κΈ€

comment-user-thumbnail
2021λ…„ 7μ›” 29일

πŸ”₯μ˜€λŠ˜λΆ€ν„° 같이 1일 1컀밋 ν•˜μžπŸ”₯

1개의 λ‹΅κΈ€