Recently, I have been seeing the concept of Promises being implemented in AngularJS and JQuery.
I have seen the implementation of a Futures in Java as in code below,
The browser-written native code underneath the JavaScript layer tends to have threads implemented very neatly. As it turns out, that's usually all you need. Promises tend not to be needed for performing actual computation work in JavaScript (although workers make that easier) but for loading outside resources, and getting callbacks when they're done. JS Promises just assign callbacks to those functions like "image.onLoad" and check whether to notify another function.
Hogan may have summarized it best - event-based programming.