<div dir="ltr"><div><div><div>A `promise.done()` method that throws if it receives a rejected promise has been discussed, but the consensus seems to be that browsers instead should report on rejected unhandled promises that are garbage collected. This is already implemented in Firefox (at least in the DevTools edition), where the following code will end up with an error in the console:<br><br></div>```js<br>var p = new Promise(function(){throw new Error("oh noes");})<br>p = null;<br>```<br><br></div>Since there is no way to handle the thrown error outside the promise (the exception is thrown after the function returns) there isn't any reason for the exception to travel up the stack. Either the exception must be handled as a rejected promise or it must be handled in something like `window.onerror`.<br><br></div>Marius Gundersen<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 13, 2015 at 12:35 PM, Boopathi Rajaa <span dir="ltr"><<a href="mailto:legend.raju@gmail.com" target="_blank">legend.raju@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>```</div><div>Promise</div><div>  .resolve()</div><div>  .then(function(){</div><div>    throw new Error('asdf');</div><div>  });</div><div>```</div><div><br></div><div>Bluebird: (errors thrown - Good)</div><div><a href="http://jsbin.com/kahuzi/1/edit?html,js,console" target="_blank">http://jsbin.com/kahuzi/1/edit?html,js,console</a></div><div><br></div><div>native ES6:(errors not thrown)</div><div><a href="http://jsbin.com/qivobibowa/3/edit?html,js,console" target="_blank">http://jsbin.com/qivobibowa/3/edit?html,js,console</a></div><div><br></div><div>Shouldn't all Uncaught errors be thrown, instead of catching it inside the promise only ? For example, If I use Promise within a promise, the uncaught error in the inner Promise will never be exposed to the outside world and there is no way to bubble it up to the outside blocks. </div><div><br></div><div>`.catch(function(err) { throw err; }) `</div><div><br></div><div>will also be caught and nothing would be thrown.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>- Boopathi</div>
</font></span><br>_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
<br></blockquote></div><br></div>