Skip to content

Instantly share code, notes, and snippets.

@darobin
Last active August 23, 2017 10:52
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save darobin/d8bda9acdd7facf931c7 to your computer and use it in GitHub Desktop.
Save darobin/d8bda9acdd7facf931c7 to your computer and use it in GitHub Desktop.
// from the brilliant mind of sb
var _catch = Promise.prototype.catch;
Promise.prototype.catch = function () {
return _catch.call(this, function (err) { setTimeout(function () { throw(err); }, 0); });
}
@moimikey
Copy link

okay. i get it then. so the setTimeout helps to unswallow subsequent errors in the chain, because when you setTimeout, it's async, so it gets popped back onto the call stack again after it gets queued, going through the event loop, and back onto the call stack with an intact stack trace.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment