36일차 TIL 210426 Promise

1. 주말마다 하고있는 알고리즘 스터디에서 n진법으로 숫자를 변경하는 문제를 풀었다.

  • 그 과정에서 toString() 으로 진법 변환이 가능하다는 것도 알게 되었다.
  • parseInt() 만 가능하다고 생각했었는데 공식문서에 아주 조그맣게 써있긴 하다.
    console.log((10).toString(2)) // 1010
    
  • 주말마다 푸는 프로그래머스 문제는 힐링이 된다. toy문제보다 훨씬 쉽기도하고(아직 1단계를 풀고 있기 때문에) pre과정에서 배웠던 것을 복습 및 응용 할 수 있다.
  • 그리고 무엇보다 같이 공부하는 사람과 커뮤니케이션이 많은 힘이 된다. 나만 힘든 것이 아니다.

2. Asynchronous & Promise

  • .then(()=>{}) 후 return 으로 다음 콜백 을 호출해주면 promise chaining이 잘 된것이라 볼 수 있다.
  • promise의 상태는 총 3개이다. pending / fulfilled / rejected
  • 새로운 promise 가 만들어지면, executor(resolve, reject)가 바로 실행이 된다
  • promise 는 produce와 consumer 로 나뉜다.
  • 사용시, promise,then(value) =>{callback…) : then이란, promise가 정상적으로 작동이 되었을때 전달 받은 정보를 가지고 온다.
  • .catch 를 이용해서 에러가 발생할때 어떻게 처리할지 콜백함수 지정가능하다. then, catch 연달아 사용 가능( map, reduce처럼)
  • .finally() 는 성공했든 실패했든 맨 마지막에 호출되서 실행된다.
  • reject 를 출력할시, reject(new Error(‘no network’)) 등 error 인스턴스를 생성해서 사용한다.

3. Promise Chaning

  • then 을 묶어서 사용할 수 있다.
  • then은 값을 전달 할 수도 있고, 또 다른 promise를 전달 할 수도 있다.

4. 스프린트 하면서 느낀점

  • 테스트 통과 등에 너무 집착하지 말고, 개념 이해하는데 더 집중하자
  • try : 하나라도 에러가 있다면 catch로 넘겨버림. 그전에 에러가 없는 것들은 실행이 된다.
  • finally : 무조건 마지막에 실행된다
  • fs.readFile시 한국어를 사용하는경우 option에 반드시 utf-8 적용 해야 한다.
  • 프로그래밍의 핵심은 디테일을 가지고 어떻게 다양한 퍼즐을 조화롭게 해결하느냐.
  • 데이터가 1억개가 된다면 ? 늘 생각하며 코딩하기.

Updated: