Promises Consensus

Domenic Denicola domenic at
Wed Jul 31 11:38:16 PDT 2013

From: Tab Atkins Jr. [jackalmage at]

> For the purposes of this email, a promise "accepting" or "rejecting" means that its resolver's accept() or reject() method was called, or the equivalent internal magic.  "fulfill" means "accept or reject". "resolve" means "adopt or accept, depending on whether the value is a promise-like or not" (in other words, what the resolver's resolve() method does).  "adopt" means accepting or rejecting with the same value as the adopted promise.  If I should be using better terms, let me know.

Thanks for the clarifications :). I think this is a bit confusing because it is at odds with commonly-used terminology, from DOM Promises and Promises/A+, but at least now things are defined and used in a self-consistent way. Much appreciated.

For the record, since you asked for better terms, the community consensus is:

- "Fulfill" and "reject" are the two end states (as opposed to "pending").
- "Settle" means "fulfill or reject."
- "Resolve" means "adopt or fulfill."

"Accept" was just a strange neologism introduced by the linguistic fork that was DOM Futures, now thankfully dead.

But for the purposes of this thread it may be best to stop worrying about these issues now that you've set out a set of self-consistent terminology, and simply go with the terms as you defined them. We can always re-kill the zombie "accept" at a later date, replacing it with the normal "fulfill," once we understand its semantics.

I'll step back and let everyone else comment now, as I believe my views on the proposed semantics are well-known.

More information about the es-discuss mailing list