nano-promise

A small Promise/A++ node module

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
nano-promise
201.2.08 years ago8 years agoMinified + gzip package size for nano-promise in KB

Readme

!Join the chatgitter-imagegitter-url !NPM versionnpm-imagenpm-url !Build statustravis-imagetravis-url !Test coveragecoveralls-imagecoveralls-url !Dependency Statusdavid-imagedavid-url !Licenselicense-imagelicense-url !Downloadsdownloads-imagedownloads-url
<img src="https://promisesaplus.com/assets/logo-small.png" alt="Promises/A+ logo"
     title="Promises/A+ 1.1 compliant" align="right" />
nano-promise
A small Promise/A++ node module.

Usage

var Promise = require('nano-promise');

new Promise(function (resolve, reject) {
	resolve(1, 2, 3, 4); // you can pass several arguments
}).then(function (a, b, c, d) {
	console.log(a, b, c, d); // 1 2 3 4
	return new Promise.Arguments(5, 6, 7, 8); // and return
}).then(function (a, b, c, d) {
	console.log(a, b, c, d); // 5 6 7 8
});
````

## Extensions

### Promise.resolve(...)


```js
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); // can be called in pending state one time only
		}};
	});
}

Promise.resolve(timer(1000, 'go'), timer(800, 'up'))
	.then(function (a, b) {
		console.log(a, b); // 'go', 'up'
	});

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); // 1 2 3 4 5 6 7 8
	});

promise.cancel()

function timer(ms) {
	return new Promise(function (resolve, reject) {
		var to = setTimeout(resolve, ms);
		return { cancel: function () {
			clearTimeout(to); // can be called in pending state one time only
		}};
	});
}

timer(1000).then(function () {
		console.log('timeout');
	}, function (r) {
		if (r === Promise.CANCEL_REASON)
			console.log('cancelled');
	}).cancel();