나는 완료시에 setTimeout()으로 다시 대기하는 함수를 가지고있다. 누군가가 Chrome DevTools가 재귀 적으로 호출하는 것처럼 보이는 이유를 설명 할 수 있습니까? 필자가 알기로는 호출 할 때마다 호출 스택이 명확해야합니다.setTimeout()이 Chrome DevTools에서 호출 스택을 왜곡시키는 이유는 무엇입니까?
: 중단 점 적중
<html>
<head>
<script>
function main() {
setTimeout(main, 100); // set breakpoint here
}
main();
</script>
</head>
<body></body>
</html>
처음 나는이를 참조하십시오
이 매우 간단한 예제를 타고파이어 폭스 개발자 도구는 내가 원하는 것을 수행하고 중단 점에 도달 할 때마다 스택에 함수의 인스턴스 하나만 보여줍니다.
내가 잘 모르는 것 같아요, 또는이 단지 DevTools로 UI 것입니다 크롬에서 진행 미묘한 참조 캡처 어떤 종류가 있습니까?
그냥 devtools UI입니다. 콜 스택은 단지 1 깊이이지만 현재 호출이 대기중인 곳을 보여줍니다. 함수가 실행되는 이유와 그것이 호출 된 컨텍스트를 추적하는 데 유용한 매우 유용합니다 –
Thanks @FredStark. 유틸리티를 볼 수는 있지만 프로그램이 실행될 때 호출 스택 목록이 무한대로 커지지 않도록하는 방법이 있습니까? (비동기식 스택 트레이스를 끄지 않고) – rkagerer