0.3.2 • Published 9 years ago

js-promise v0.3.2

Weekly downloads
1
License
BSD-2-Clause
Repository
github
Last release
9 years ago

Promise

Require about 150 lines of javascript code to utilize Promise class for implementing asynchronous processes with chaining, series and joining capabilities.

js-promise supports AMD loaders.

package.json

{
  "dependencies": {
    "js-promise": "*"
  }
}

Sample usage

var Promise = require("js-promise");

function myTimeout(ms, logMsg){
    return new Promise(function(onSuccess, onError){
        setTimeout(function(){
                console.info(logMsg || ("-- Timeout ended on: " + (new Date()).toISOString()));
                onSuccess(ms);
            },
            ms
        );
    });
}

var startTime = Date.now();

console.log("Testing chains of (1+2+3+5+6)=17 seconds on " + (new Date()).toISOString());

myTimeout(1000)
.then(function(delay){
        console.log("Done " + delay + " ms!");
        return myTimeout(2000);
    }
).then(function(delay){
        console.log("Done " + delay + " ms!");
        return myTimeout(3000);
    }
).then(function(delay){
        console.log("Done " + delay + " ms!");
        return testJoin();
    }
).then(function(){
        return testSeries();
    }
).done(function(){
        var totalSeconds = ( Date.now() - startTime ) / 1000;
        console.log("Test Passed! in " + totalSeconds + " Seconds, expected: 17");
    }
);

function testJoin() {
    console.log("Waiting for 3 joined promises to finishes in (2|1|5)=5 seconds on:" + (new Date()).toISOString());
    return Promise.join([
        myTimeout(2000),
        myTimeout(1000),
        myTimeout(5000),
    ]).then(function(){
        console.log("Done Promise.join on: " + (new Date()).toISOString());
    })
}

function testSeries() {
    console.log("Testing a series of 3 timeouts (2+1+3) seconds total 6 ");
    return Promise.series([
        function() {
            return myTimeout(2000);
        },
        function() {
            return myTimeout(1000);
        },
        function() {
            return myTimeout(3000);
        }
    ]).then(function(result){
        console.log("Promise.series result = " + JSON.stringify(result));
        console.log("Done Promise.series on " + (new Date()).toISOString());
    })
}
0.3.2

9 years ago

0.3.1

10 years ago

0.3.0

10 years ago

0.2.4

10 years ago

0.2.3

10 years ago

0.2.2

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.0

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago

0.0.0

10 years ago