2015-05-07 38 views
6

Tôi có một số câu hỏi liên quan đến ngăn xếp javascript sau đây.Tìm hiểu về ngăn xếp javascript chrome

  1. Tại sao có hai phần trong ngăn xếp chồng lên nhau: phần đầu tiên màu đỏ ở trên cùng và phần thứ hai màu đỏ ở đầu và phần thứ hai màu đen bên dưới?
  2. Dòng đầu tiên bắt đầu bằng at là gì? tức là at angular.js:63: tại sao nó không đề cập đến một hàm/phương thức gọi như các dòng khác?
  3. Làm thế nào để nó được đặt hàng? Các đường ở phía dưới có xảy ra trước các dòng ở trên cùng không?

javascript stacktrace

+0

Không thực sự trả lời câu hỏi, nhưng lỗi này có thể do bạn gọi '$ scope. $ Apply' ở đâu đó. – Cerbrus

+0

Nó thực sự là. Nhưng tôi thực sự muốn thông tin về cấu trúc của một stacktrace nói chung chứ không phải là một giải pháp để tránh stacktrace này. Dù sao cũng cảm ơn bạn. – balteo

+0

Tôi đã tìm ra nhiều, đó là lý do tại sao tôi làm cho nó một bình luận. – Cerbrus

Trả lời

3
  1. Các bit màu đỏ là thông điệp ngoại lệ/lỗi - trong trường hợp này có vẻ như góc đã ném một ngoại lệ và như một phần của ngoại lệ mà nó đã được thêm vào nội dung của stacktrace để thông báo, trong khi các bit đen là dấu vết ngăn xếp mà bạn sẽ nhận được bất cứ khi nào trình duyệt trải nghiệm một ngoại lệ chưa được xử lý.
    1. Dòng đầu tiên ở trạng thái xảy ra lỗi - tên tập lệnh và số dòng - nếu bạn xem nguồn của angular.js tại dòng 63, bạn sẽ thấy câu lệnh đã ném ngoại lệ.
    2. Nó không đề cập đến một cuộc gọi hàm vì đó là câu lệnh đã ném ngoại lệ. Cách duy nhất để nhận được câu lệnh đó là thông qua một loạt các cuộc gọi hàm, các lệnh này sau đó được hiển thị theo thứ tự ngược lại.
  2. Đúng. Ví dụ Scope.$apply chức năng thực hiện cuộc gọi đến Scope.$evalScope.$eval gọi một chức năng gọi là callback vv

+0

Cảm ơn phuzi. Tôi vẫn không chắc chắn về điểm 1 & 2 ... Bạn có thể cung cấp thêm chi tiết không? – balteo

+0

@balteo Đã cập nhật câu trả lời của tôi. – phuzi

1

Chrome sử dụng động cơ v8 để làm việc trên JavaScript. Vì vậy, tôi trích dẫn liên kết sau cho câu trả lời - https://code.google.com/p/v8-wiki/wiki/JavaScriptStackTraceApi

  1. Tôi không chắc chắn về câu trả lời cho câu hỏi này.

  2. Dòng đầu tiên cho chúng tôi biết vị trí xảy ra lỗi. Với khung như góc cạnh, nó có thể sâu bên trong khuôn khổ nó không cần phải là mã người dùng.

  3. Có nó ở dưới cùng, tức là từ điểm xảy ra lỗi lên trên đối với người gọi, trong trường hợp này là một công văn sự kiện jQuery.

+0

Cảm ơn bạn đã liên kết Siva. – balteo

+0

bạn được chào đón @balteo. –

Các vấn đề liên quan