Re:V8 adds support for top-level await
by pitaj on Tuesday September 24, 2019 @06:27PM
(#21065310)
JS async is implemented as generators as well AFAIK
[ Parent
| on HN ]
I'm not sure how they're handled internally, but async functions are no longer generators. For a while after generators and before async/await, generators were used as a polyfill.
Re:V8 adds support for top-level await
by pitaj on Wednesday September 25, 2019 @12:05AM
(#21067501)
Because of how similar they are, it would make sense to implement async/await using existing generator backends in the VM, right?
Re:V8 adds support for top-level await
by dlbucci on Tuesday September 24, 2019 @08:16PM
(#21066206)
Not unless promises are implemented with generators. I dunno though, I feel like there's some overlap between the two concepts, so maybe they are?
Promises are just objects which represent an asynchronous value.
Async/await are coroutines: they have a shared context, stack, etc. They can be paused and resumed.
The implementation of async/await depends on the engine, but I'm pretty sure they use the same generator backend.
Babel and other transpilers convert async functions actual generator functions. By contrast, promises are a fairly simple runtime library.