Promises are a fairly classic abstraction already, even in JS where they got formalized in 2012 with Promises/A+. Often misunderstood or under-used, they provide a solid fix to many of the pitfalls inherent to raw callbacks, and offer a wealth of extra features and goodness.