JavaScript Promises

A promise is an object which can be returned synchronously from an asynchronous function.

There are 3 possible promise states: Fulfilled, Rejected and Pending