2015-05-07 54 views
6

我有幾個關於下面的JavaScript堆棧跟蹤的問題。瞭解鉻堆棧跟蹤

  1. 爲什麼堆棧跟蹤有兩個部分:第一個是紅色的頂部,第二個是黑色的?
  2. at開頭的第一行是什麼意思?即at angular.js:63:爲什麼它不像其他行那樣引用函數/方法調用?
  3. 它是如何訂購的?底部的線是否出現在頂部的線之前?

javascript stacktrace

+0

不是真的回答了這個問題,但是這個錯誤可能是由於你在某處調用了'$ scope。$ apply'造成的。 – Cerbrus

+0

確實如此。但我真的很想獲得關於堆棧跟蹤結構的信息,而不是避免這種堆棧跟蹤的解決方案。不管怎麼說,還是要謝謝你。 – balteo

+0

我的想法很多,這就是爲什麼我發表評論的原因。 – Cerbrus

回答

3
  1. 在紅色中的位具有異常/錯誤消息 - 在這種情況下,它看起來像角已拋出異常和作爲該異常的一部分還增加棧跟蹤的內容,以該消息,而黑色位是您在瀏覽器遇到未處理的異常時得到的堆棧跟蹤。
    1. 在美國當出現錯誤的第一行 - 腳本名和行號 - 如果你看一看的angular.js源的線63,你會看到,拋出異常的語句。
    2. 它不引用函數調用,因爲它是引發異常的語句。通過一系列函數調用來獲得該語句的唯一方法是,然後以相反的順序顯示。
  2. 正確。例如,Scope.$apply函數進行調用以Scope.$evalScope.$eval呼叫被叫callback功能等

+0

謝謝phuzi。我仍然不確定第1和第2點...你能提供更多細節嗎? – balteo

+0

@balteo更新了我的答案。 – phuzi

1

Chrome使用的V8引擎,在JavaScript的工作。所以,我引用下面的鏈接,答案 - https://code.google.com/p/v8-wiki/wiki/JavaScriptStackTraceApi

  1. 我不知道這個問題的答案。

  2. 第一行告訴我們發生錯誤的位置。像框架一樣,它可能在框架內部,它不需要用戶代碼。

  3. 是的,它是自下而上,即從錯誤發生的地方向上朝向調用者,在這種情況下是jQuery事件調度。

+0

感謝鏈接Siva。 – balteo

+0

歡迎您@balteo。 –