Edit: The proposal now lives here, and this below is generally out of date.
Asynchrony is hard. Modeling it is not super intuitive in most languages, JavaScript being no exception for the longest time. But we have been making progress:
- Callbacks give us the base concept, thanks to lambda calculus.