Skip to content

Instantly share code, notes, and snippets.

@domenic
domenic / promises.md
Last active March 31, 2024 14:07
You're Missing the Point of Promises

This article has been given a more permanent home on my blog. Also, since it was first written, the development of the Promises/A+ specification has made the original emphasis on Promises/A seem somewhat outdated.

You're Missing the Point of Promises

Promises are a software abstraction that makes working with asynchronous operations much more pleasant. In the most basic definition, your code will move from continuation-passing style:

getTweetsFor("domenic", function (err, results) {
 // the rest of your code goes here.
function shallowCopy(old) {
var props = {};
Object.getOwnPropertyNames(old).forEach(function (name) {
props[name] = Object.getOwnPropertyDescriptor(old, name);
});
return Object.create(Object.getPrototypeOf(old), props);
}
// A very hard and dangerous to copy object
var obj = {