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

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

TIL

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

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

Promise 포인트

  • Promise μ•ˆμ— rejectκ°€ μ‹€ν–‰λ˜λŠ” 쑰건을 μ„€μ •ν•˜κ³ , Promise μ²΄μΈμ—μ„œ rejectκ°€ μ‹€ν–‰λœλ‹€λ©΄ .catch()의 μ½œλ°±ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•œλ‹€.

  • Promise μ•ˆμ— resolveκ°€ μ‹€ν–‰λ˜λŠ” 쑰건을 μ„€μ •ν•˜κ³  Promise μ²΄μΈμ—μ„œ resolveκ°€ μ‹€ν–‰λœλ‹€λ©΄, λ‹€μŒ 체인 .then()의 μ½œλ°±ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•œλ‹€.

  • Promise μ²΄μΈμ—μ„œ .then을 μ΄μš©ν• λ•Œ μΈμžκ°€ ν•„μš”ν•œ ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•΄μ€˜μ•Ό ν•œλ‹€λ©΄, bind ν•¨μˆ˜ λ©”μ†Œλ“œλ‘œ 인자λ₯Ό κ³ μ •μ‹œμΌœμ€˜μ•Όν•œλ‹€.

    • function.bind(context, arg1,arg2,argn)

  • Promise 객체 내에 μžˆλŠ” resolve()에 인자λ₯Ό λ„£μœΌλ©΄ 마치 λ¦¬μ•‘νŠΈμ—μ„œ ν”„λ‘­μŠ€ μ΄μš©ν•˜λŠ” 것 처럼, .then으둜 λ°›μ„λ•Œ λ§€κ°œλ³€μˆ˜λ₯Ό λ„£μŒμœΌλ‘œ 전달 받은 값을 μ‚¬μš©ν•  수 μžˆλ‹€.

  • 그리고 ν•΄λ‹Ή 콜백 ν•¨μˆ˜μ˜ 리턴 값은 λ‹€μŒ .then λ©”μ†Œλ“œμ—μ„œ λ˜‘κ°™μ΄ λ°›μ•„ μ‚¬μš©κ°€λŠ₯ν•˜λ‹€.

  • new Promise 객체λ₯Ό λ°˜ν™˜ν•œ ν•¨μˆ˜μ˜ λ°˜ν™˜ 값은 resolve의 μΈμžμ΄λ‹€.

Promise.all

  • Promise.all() κ΄„ν˜Έ μ•ˆμ— Promise 객체λ₯Ό μš”μ†Œλ‘œ 가진 배열을 λ°›κ³  ν•΄λ‹Ή κ°μ²΄λ“€μ˜ λ°˜ν™˜ 값을 λ°°μ—΄λ‘œ λ°˜ν™˜ν•œλ‹€.

Node.js

Node.jsλŠ” 비동기 이벀트 기반 μžλ°”μŠ€ν¬λ¦½νŠΈ λŸ°νƒ€μž„μ΄λ‹€.

fsλͺ¨λ“ˆ - file system λͺ¨λ“ˆλ‘œ, node.js의 λ‚΄μž₯ λͺ¨λ“ˆμ΄λ‹€.

Node.js fs.readFile(path, [, option], callback)

λ©”μ†Œλ“œλŠ” λΉ„λ™κΈ°μ μœΌλ‘œ 파일 전체λ₯Ό 읽으며 λ©”μ†Œλ“œ μ‹€ν–‰μ‹œ 인자λ₯Ό μ„Έκ°œ μ‚¬μš©κ°€λŠ₯ν•˜λ‹€.

  • Path μ—¬λŠ” 파일 이름을 인자둜 넣을 수 μžˆλ‹€.
    λ‹€μŒ <string>, <buffer>, <url>, <integer> νƒ€μž…μ„ μ‚¬μš©ν•  수 μžˆμ§€λ§Œ 일반적으둜 λ¬Έμžμ—΄μ„ μ‚¬μš©ν•œλ‹€.

  • Options
    λ‘λ²ˆμ§Έ μΈμžλŠ” μ„ νƒμ μœΌλ‘œ μ‚¬μš©κ°€λŠ₯ν•œ 인자이며 객체 λ˜λŠ” λ¬Έμžμ—΄λ‘œ μ‚¬μš©κ°€λŠ₯ν•˜λ‹€.
    λ¬Έμžμ—΄λ‘œ μ‚¬μš©ν• λ• 파일의 인코딩(ansi, utf8 λ“±)이 λ“€μ–΄κ°„λ‹€.

  • callback
    μ„Έλ²ˆμ§ΈλŠ” 콜백 ν•¨μˆ˜μ˜ 자리둜 νŒŒμΌμ„ 읽은 ν›„ λΉ„λ™κΈ°μ μœΌλ‘œ μ‹€ν–‰λ˜λŠ” ν•¨μˆ˜μ΄λ‹€.
    이 μ½œλ°±ν•¨μˆ˜λŠ” 두 λ§€κ°œλ³€μˆ˜(err, data)λ₯Ό κ°€μ§€λŠ”λ° μ—λŸ¬ λ°œμƒν•˜μ§€ μ•ŠλŠ” κ²½μš°λŠ” err μžλ¦¬μ— null이 ν• λ‹Ήλ˜λ©°, data에 λ¬Έμžμ—΄μ΄λ‚˜ bufferλž€ 객체가 μ „λ‹¬λœλ‹€.
    인코딩이 μ§€μ •λ˜μ§€ μ•ŠμœΌλ©΄ μ›μ‹œλ²„νΌκ°€ data에 μ „λ‹¬λœλ‹€.

TO DO πŸ”₯

  • DFS, BFS μˆ™λ ¨
  • μ•Œκ³ λ¦¬μ¦˜ μ—°μŠ΅

Retrospect 🧐

μ˜€λŠ˜μ€ μƒλŒ€μ μœΌλ‘œ μ—¬μœ λ‘œμš΄ λ‚ μ΄μ—ˆλ‹€.
μ–΄μ œ 머리가 많이 λ…Ήμ•„μ„œ μƒλŒ€μ μœΌλ‘œ κ·Έλ ‡κ²Œ λŠκ»΄μ§€λŠ” 것 같은데 λͺ¨λ ˆλΆ€ν„° μ‹œμž‘λ  λ„€νŠΈμ›Œν¬κ°€ 벌써 κ²λ‚œλ‹€.

λ‡Œκ°€ 녹아가도 μ—΄μ‹¬νžˆ 해야징 γ…Žγ…Ž

μ•Œκ³ λ¦¬μ¦˜ ν•˜λ£¨μ— ν•˜λ‚˜μ”© λ”°λ‘œ ν’€μ–΄μ•Όν•˜λŠ”λ° μ½”ν”Œλ¦Ώ ν‘Όλ‹€κ³  μ •μ‹ μ—†μ–΄μ„œ λͺ» ν’€κ³  μžˆλŠ”κ²Œ μ’€ 아쉽닀.
μ½”ν”Œλ¦Ώμ„ λΈ”λ‘œκΉ…ν•˜κΈ°μ—” λˆˆμΉ˜κ°€ λ³΄μ΄λ‹ˆκΉŒ λ¬΄ν•œ 쑴버쀑
ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ λ¬Έμ œκ°€ λ‚  기닀리고 μžˆλŠ”λ° μ΄λ†ˆμ˜ μ½”ν”Œλ¦Ώμ΄ λ‚  λ†”μ£Όμ§ˆ μ•Šμ•„ 빨리 λ†”μ€˜

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

0개의 λŒ“κΈ€