
nano-promise
A small Promise/A++ node module.
Usage
var Promise = require('nano-promise');
new Promise(function (resolve, reject) {
resolve(1, 2, 3, 4);
}).then(function (a, b, c, d) {
console.log(a, b, c, d);
return new Promise.Arguments(5, 6, 7, 8);
}).then(function (a, b, c, d) {
console.log(a, b, c, d);
});
Extensions
Promise.resolve(...)
Promise.resolve(5, 'a')
.then(function (a, b) {
console.log(a, b);
});
Like Promise.all() but ...
function timer(ms, value) {
return new Promise(function (resolve, reject) {
var to = setTimeout(function () {
resolve(value);
}, ms);
return { cancel: function () {
clearTimeout(to);
}};
});
}
Promise.resolve(timer(1000, 'go'), timer(800, 'up'))
.then(function (a, b) {
console.log(a, b);
});
Promise.concat(array)
- array {Array} - array of Promises or values
Promies.concat([
new Promise(function (resolve, reject) {
resolve(1, 2, 3, 4);
},
new Promise(function (resolve, reject) {
resolve(4, 5, 6, 7);
}])
.then(function (a,b,c,d,e,f,g,h) {
console.log(a,b,c,d,e,f,g,h);
});
promise.cancel()
function timer(ms) {
return new Promise(function (resolve, reject) {
var to = setTimeout(resolve, ms);
return { cancel: function () {
clearTimeout(to);
}};
});
}
timer(1000).then(function () {
console.log('timeout');
}, function (r) {
if (r === Promise.CANCEL_REASON)
console.log('cancelled');
}).cancel();