Resolver
From Erights
(rename Ref (object) for capitalization unambiguity) |
Kevin Reid (Talk | contribs) |
||
Line 5: | Line 5: | ||
== Protocol == | == Protocol == | ||
- | + | === resolve/1 === | |
+ | resolve(<var>resolution</var>) :void | ||
Resolves the promise to <var>resolution</var>, or [[throws]] if it is already resolved. | Resolves the promise to <var>resolution</var>, or [[throws]] if it is already resolved. | ||
- | + | === resolve/2 === | |
+ | resolve(<var>resolution</var>, <var>strict</var> :[[Boolean]]) :[[Boolean]] | ||
- | Resolves the promise to <var>resolution</var> and returns [[true]], or returns [[false]] if it is | + | 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. |
- | + | === resolveRace/1 === | |
+ | resolveRace(_) :[[Boolean]] | ||
- | + | Resolves the promise to <var>resolution</var> and returns [[true]], or returns [[false]] if it is already resolved. | |
- | + | === smash/1 === | |
+ | smash(<var>problem</var>) :[[Boolean]] | ||
- | ( | + | Equivalent to resolveRace([[Ref (object)#broken/1|Ref.broken]](<var>problem</var>)). |
- | + | === isDone/0 === | |
- | + | isDone() :Boolean | |
- | + | ||
Returns whether the promise is already resolved. | Returns whether the promise is already resolved. | ||
- | + | === gettingCloser/0 === | |
- | + | gettingCloser() :void | |
- | + | ||
- | + | {{undocumented method}} | |
- | + |
Revision as of 15:10, 21 April 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.
resolve/2
resolve(resolution, strict :Boolean) :Boolean
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.
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)).
isDone/0
isDone() :Boolean
Returns whether the promise is already resolved.
gettingCloser/0
gettingCloser() :void