A promise is an object that will produce a single value shortly, either a solved value or a reason why it cannot be resolved (rejected).
Fulfilled: Operation completely successfully
Rejected: Failed operation
Pending: early state, neither fulfilled nor rejected.