You might try reading through some of the previous threads that talk
about the trickiness of surfacing promise errors in the general case.
Unfortunately these threads usually devolve into an endless thread of
discussion and debate that become next to impossible to actually read
through later without several hours of spare time and a bottle of
whiskey... But here's a recent one that's not *too* long and kind of
talks about a couple of ideas:
https://esdiscuss.org/topic/async-await-improvements (long, but talks
about a couple potential/proposed solutions)
-Jeff
On 1/13/15 7:44 AM, Marius Gundersen wrote:
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:
```js
var p = new Promise(function(){throw new Error("oh noes");})
p = null;
```
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`.
Marius Gundersen
On Tue, Jan 13, 2015 at 12:35 PM, Boopathi Rajaa
<[email protected] <mailto:[email protected]>> wrote:
```
Promise
.resolve()
.then(function(){
throw new Error('asdf');
});
```
Bluebird: (errors thrown - Good)
http://jsbin.com/kahuzi/1/edit?html,js,console
native ES6:(errors not thrown)
http://jsbin.com/qivobibowa/3/edit?html,js,console
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.
`.catch(function(err) { throw err; }) `
will also be caught and nothing would be thrown.
- Boopathi
_______________________________________________
es-discuss mailing list
[email protected] <mailto:[email protected]>
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss