Resolver
From Erights
Kevin Reid (Talk | contribs) (deprecate resolve/2) |
m (→resolve/2) |
||
Line 23: | Line 23: | ||
resolve(<var>resolution</var>, <var>strict</var> :[[Boolean]]) :[[Boolean]] | resolve(<var>resolution</var>, <var>strict</var> :[[Boolean]]) :[[Boolean]] | ||
- | (Deprecated as of 2007-05-30: [[User:Markm]], [[User:Kevin Reid]], and Dean Tribble agree this interface is inferior to resolve/1 and resolveRace/ | + | (Deprecated as of 2007-05-30: [[User:Markm]], [[User:Kevin Reid]], and Dean Tribble agree this interface is inferior to resolve/1 and resolveRace/1.) |
Resolves the promise to <var>resolution</var> and returns [[true]], or if it is already resolved, returns [[false]] if <var>strict</var> is false or [[throws]] if it is true. | Resolves the promise to <var>resolution</var> and returns [[true]], or if it is already resolved, returns [[false]] if <var>strict</var> is false or [[throws]] if it is true. |
Revision as of 06:33, 1 June 2007
A resolver is an object providing the ability to resolve a promise.
A resolver does not allow retrieving the reference to which a promise has been resolved; in E (but not in ref_send), a resolver allows observing whether resolution has occurred.
Contents |
Protocol
resolve/1
resolve(resolution) :void
Resolves the promise to resolution, or throws if it is already resolved.
resolveRace/1
resolveRace(_) :Boolean
Resolves the promise to resolution and returns true, or returns false if it is already resolved.
smash/1
smash(problem) :Boolean
Equivalent to resolveRace(Ref.broken(problem)).
resolve/2
resolve(resolution, strict :Boolean) :Boolean
(Deprecated as of 2007-05-30: User:Markm, User:Kevin Reid, and Dean Tribble agree this interface is inferior to resolve/1 and resolveRace/1.)
Resolves the promise to resolution and returns true, or if it is already resolved, returns false if strict is false or throws if it is true.
isDone/0
isDone() :Boolean
Returns whether the promise is already resolved.
gettingCloser/0
gettingCloser() :void
The specification for this message has not been written.