async/await improvements

James Long longster at
Wed Nov 12 15:06:37 PST 2014

On Wed, Nov 12, 2014 at 5:56 PM, Tab Atkins Jr. <jackalmage at> wrote:
> It's impossible to rethrow errors without use of "await" - the error
> may happen in a different turn entirely than the function call.  You
> *must* convert your calling function into an async one, so that it can
> do the "freeze and wait for the promise to resolve" thing, which means
> that it needs to return a promise for itself as well.
> ~TJ

The crucial different from what you're describing (not directly in the
paragraph above) is that you say propagate by default, and I say throw
by default (and a real throw, like uncaught exception in the debugger
type throw). The latter imposes way less constraints on the GC and
less ambiguity of error handling, at the cost of slightly more verbose
async handling. I was hoping async/await may be a chance to look at
this, but it sounds like we're far down the road of promises for it to
be an option.

More information about the es-discuss mailing list