2016-10-28 7 views
5

노드 라이브러리의 대부분의 API는 설계 상 비동기식입니다. 콜백에서 예외가 발생하면 stacktrace는 process._tickCallback에서 시작하는 호출 스택 만 표시합니다.NodeJS : 호출 비동기 함수의 스택 추적을 표시 할 수 있습니까?

_tickCallback을 trigerred하는 함수의 스택 추적을 표시하는 트릭이 있는지 궁금합니다.

+0

[여기에 사용할 수있는 방법입니다 (] (https://gist.github.com/lll000111/3d6a53da4d53beb909189793c7631ba6) 단점 : 몇 줄의 추가 코드 - 모든 비동기를 래핑해야합니다. 'try/catch' 함수 호출 ('promise.catch (...)'도 사용할 수 있습니다). 그런 다음 새로운'Error' 객체를 생성하고 기존 스택에'stack' 속성을 추가합니다. 모든 비동기에 대해 완료되면. 함수 호출은 전체 스택 추적으로 끝납니다. 속도의 단점 (스택 트레이스 생성이 비쌉니다)은 비동기의 경우 중요하지 않습니다. 함수 (pls.는 정상적인 제어 흐름에 예외를 사용하지 않음). –

답변

0

긴 스택 트레이스를보고 필요에 맞는 지 확인할 수 있습니다. 모듈을 스택 업이라고합니다. 당신이 모두 설치됩니다

npm install --save stackup 

을 한 후 필요합니다

require('stackup'); 
여기

더 많은 정보 : https://github.com/groundwater/node-stackup 노드 8 버전에서

1

async_hooks

trace 등장은 비동기이 사용 스택 트레이스

관련 문제