Fork me on GitHub

Module ringo/promise

Functions

Class deferred

Static Methods

Static Properties

Class deferred.promise

Static Methods


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