Promises over callbacks
For HTTP Request, our existing solution is to use callbacks.
A few problems exist with callbacks. One is known as callback hell. A larger problem is decomposition.
The callback pattern require us to specify the task and the callback at the same time. By difference, promises allow us to specify and dispatch the request in one place.
And then add the callback later, and in a different place.
This also allows us to attach multiple handlers to the same task.