简体   繁体   中英

Javascript: Errors arent being displayed on event listeners

I have a problem that is driving me crazy. I have two event listeners that appear to be identical. The are being called with the same scope but at different times. I have been using chromes debugger tool to step through them. The first one will throw an error

TypeError: Object 1 has no method 'get'

But the second example simple stops executing

el.on("change:one", function() {
  debugger;
  a = 1;
  a.get();
});

el.on("change:two", function() {
  debugger;
  a = 1;
  a.get();
});

I understand that simple asking why is this happening probably needs a detailed explanation of all the libraries being used etc, so my question is:

Is it possible to not display errors thrown by javascript, and how would I be able to detect whether something is overriding the error reporting functionality

NOTE: In both examples I have determined that window.onerror is null

Backbone invokes event handlers synchronously and doesn't catch handler exceptions. So if you had code that looked like:

el.trigger('change:one'); // handler will throw exception
el.trigger('change:two'); // won't execute

The change:two event will never get triggered, resulting in your change:two handler never getting invoked.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM