Module ringo/promise
Functions
- defer()
defer ()
Returns an object representing a deferred value. The deferred is a JavaScript object with two properties: a promise object and a resolve function.
The promise object can be used to [register a callback][#deferred.promise.then] to be invoked when the promise is eventually resolved, or [wait for the promise to be resolved][#deferred.promise.wait].
The [resolve][#deferred.resolve] function is used to resolve the promise as either fulfilled or failed.
Example
// Example for an asynchronous JSGI response.
// The response is generated after a one second delay.
exports.asyncAction = function(request) {
var response = defer();
setTimeout(function() {
response.resolve({
status: 200, headers: {}, body: ["Delayed"]
});
}, 1000);
return response.promise;
}
deferred.promise
A promise object.
deferred.promise.then (callback, errback)
Invoke a callback or errback function when the promise is resolved.
Parameters
| function | callback | called if the promise is resolved as fulfilled |
| function | errback | called if the promise is resolved as failed |
Returns
| Object | a new promise that resolves to the return value of the callback or errback when it is called. |
deferred.promise.wait (timeout)
Wait for the promise to be resolved.
Parameters
| number | timeout | optional time in milliseconds to wait for. If undefined wait() blocks forever. |
Returns
| Object | the value if the promise is resolved as fulfilled |
Throws
{Object} the error value if the promise is resolved as failed
deferred.resolve (result, isError)
Resolve the promise.
Parameters
| Object | result | the result or error value |
| boolean | isError | if true the promise is resolved as failed |
