On Wed, Nov 12, 2014 at 3:53 PM, James Long <[email protected]> wrote: > On Wed, Nov 12, 2014 at 6:46 PM, Tab Atkins Jr. <[email protected]> wrote: >> On Wed, Nov 12, 2014 at 3:36 PM, James Long <[email protected]> wrote: >>> `await` is *always* inside an `async` function so there's always a >>> promise created for that function which is waiting for it to be done >>> executing. That's the one I'm talking about. >> >> Okay. That doesn't change my response. The outer async function also >> returns a promise, and doesn't run syncly with *its* caller, so it's >> again physically impossible for it to throw an error at its callsite >> (again, unless *its* caller has opted into asynchrony and used >> `await`). > > Yeah, I'm only talking about call sites that used `await`. Although, > mainly the question is when an error happens inside an `async` > function, whether it throws at that point or passes it onto the > returning promise. You're definitely going to view that differently > whether you embrace promises or not.
If both the outer and inner callsites used "await", and the innermost callee returned a rejected promise, then the inner "await" will throw, which causes its containing function to reject its promise, which causes the outer "await" to throw (which then causes the outer function to reject its promise). I'm still confused about what you are confused about here. You get throws if you use `await`. You get rejected promises if you don't. There's no two ways about it. ~TJ _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

