Futures (aka Deferreds aka Promises) are indeed cool. For a more general toolbox, check out https://github.com/coolaj86/futures What the linked article doesn't show is how you would create your own future objects, which in my point of view is the more useful thing. (I can always specify the error function using the more general $.ajax() so knowing that $.get() finally allows specifying both success and error with fut…
In my experience Futures, Deferreds, and Promises all have different definitions. JS developers seem to be cooping some of these meanings for their own usage, which is natural in any fast growing community. All of the Promise APIs I've seen in JS are really just what I historically saw called Deferreds (like this jQuery API). Futures and Promises, historically, have been ways to express asynchronous work in a synchronous workflow, where a Future is just a read-only view of a Promise. If interested, play with Mozart/Oz and grab a copy of Concepts Techniques and Models of Computer Programming. I both very mind expanding when it comes to thinking of concurrency and data flow.