Promises/A+ is based on the concepts and then
API presented in the CommonJS Promises/A proposal. However, it differs from Promises/A in several important ways.
The following parts of Promises/A have been intentionally omitted:
promise1 !== promise2
is not a requirement for var promise2 = promise1.then(onFulfilled, onRejected)
.Promises/A+ uses different terminology from Promises/A, reflecting what has become the de facto vocabulary among promise implementations. Specifically:
Promises/A+ additionally specifies:
onFulfilled
or onRejected
returns a thenable, including the details of the resolution procedure;onRejected
must be the thrown exception in the case where a handler throws;onFulfilled
and onRejected
must be called asynchronously;onFulfilled
and onRejected
must be called as functions;onFulfilled
and onRejected
for subsequent calls to then
on the same promise.