There is one, and only one, resolution or rejection. A promise is resolved one time. It will never be fulfilled if it has been rejected or rejected if it has been fulfilled.

Listeners are executed one time. An individual callback or errback will be executed once and only once. This follows from the first rule of the contract.

A promises remembers its state. A promise that is resolved with a value remembers the fulfillment. If a callback is attached in the future to this promise, it will be executed with the previously resolved value. The same is true of errbacks. If a promise is rejected and an errback is attached after the rejection, it will be executed with the rejected value. Promises behave the same way regardless of whether they are already resolved or resolved in the future.