vow

DOM Promise and Promises/A+ implementation for Node.js and browsers

NOTE. Documentation for old versions of the library can be found at https://github.com/dfilatov/vow/blob/0.3.x/README.md.

Vow 0.4.8 =========

Vow is a Promises/A+ implementation. It also supports ES6 Promises specification.

You can install using Node Package Manager (npm):

npm install vow
<script type="text/javascript" src="vow.min.js"></script>

It also supports RequireJS module format and YM module format.

Vow has been tested in IE6+, Mozilla Firefox 3+, Chrome 5+, Safari 5+, Opera 10+.

There are two possible ways to create a promise.

function doSomethingAsync() {
    var deferred = vow.defer();
    
    // now you can resolve, reject, notify corresponging promise within `deferred` 
    // e.g. `defer.resolve('ok');` 
        
    return deferred.promise(); // and return corresponding promise to subscribe to reactions 
}
 
doSomethingAsync().then(
    function() {}, // onFulfilled reaction 
    function() {}, // onRejected reaction 
    function() {}  // onNotified reaction 
    );

The difference between deferred and promise is that deferred contains methods to resolve, reject and notify corresponding promise, but the promise by itself allows only to subscribe on these actions.

function doSomethingAsync() {
    return new vow.Promise(function(resolverejectnotify) {
        // now you can resolve, reject, notify the promise 
    });
}
 
doSomethingAsync().then(
    function() {}, // onFulfilled reaction 
    function() {}, // onRejected reaction 
    function() {}  // onNotified reaction 
    );

Full API reference can be found at http://dfilatov.github.io/vow/.

  • vow-fs — vow-based file I/O for Node.js
  • vow-node — extension for vow to work with nodejs-style callbacks
  • vow-queue — vow-based task queue with weights and priorities
  • vow-asker — wraps asker API in the vow promises implementation