• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

catchNoop을 해줘야되는 이유에 대해서 궁금한게있습니다.

19.05.02 17:37 작성 조회수 154

0

한 콜스택 내에서 error를 catch하지 못했기 때문에 error가 콘솔에 뿜어져서 catchNoop을 해준다고 하셨는데요.

C.reduce가 아니라 그냥 reduce의 경우에는 세로로 하나씩 실행되면서 filter가 Promise.reject(nop)을 리턴할 때가 있는데요. 이 call stack이 끝나고 reduce에 의해 recur이 실행되어 L.map으로 넘어가는데 L.map이 받은 Promise.reject(nop)은 filter와 다른스택 아닌가요? 제 생각으로는 L.map으로 가기전에 L.filter의 처리를 담은 프로미스가 끝나서 한 call-stack이 끝나고 C.reduce와 마찬가지로 에러를 만들어야될 것 같은데 아니네요. 

 

답변 1

답변을 작성해보세요.

4

제가 알고 있는 한에서는 어쩔 수 없는 트릭 같은거라고 보고 있는데요. 

평가가 이루어진 스코프에서 에러핸들링을 해놨어야 핸들링 안된 에러를 브라우저에 찍어버리지 않기 때문에 일단 거기서 에러를 찍지 않도록 살짝 정리해주고, 실제 의미 있는 핸들링은 이후에 하는 식으로 구현했습니다.