2.0.3 • Published 5 years ago

promiseback v2.0.3

Weekly downloads
77,127
License
MIT
Repository
github
Last release
5 years ago

#promiseback Version Badge

Build Status dependency status dev dependency status

npm badge

browser support

Accept an optional node-style callback, and also return a spec-compliant Promise!

API

var promiseback = require('promiseback');
var callback = function (err, value) {};

/* without a promise: */
promiseback(callback);
	/*
		- will throw if `callback` is not a function
		- returns a "deferred"
		- has resolve/reject methods, and `promise` property
		- will call `callback` as expected when deferred is resolved
	*/

/* with a promise: */
promiseback(promise, callback);
	/*
		- will throw if `callback` is truthy and not a function
		- `promise` will be converted to a Promise, so you can pass a value as well
		- returns a Promise
		- will call `callback` as expected when the promise is fulfilled
	*/

Examples

Using deferreds:

var promiseback = require('promiseback');

module.exports = function doSomethingCool(thing, callback) {
	// If callback is not provided, this code will simply return a normal promise.
	// If callback is provided but is not a function, promiseback will immediately throw a TypeError.

	// "deferred" is an object with `reject/resolve` methods, and a `promise` property.
	var deferred = promiseback(callback);
	if (thing) {
		deferred.resolve(thing);
	} else {
		deferred.reject(thing);
	}
	return deferred.promise;
};

Using a straight promise, when you can get it from somewhere else:

var promiseback = require('promiseback');

module.exports = function doSomethingCool(thing, callback) {
	// If callback is not provided, this code will simply return a normal promise.
	// If callback is provided but is not a function, promiseback will immediately throw a TypeError.

	var newThingPromise = makeNewThing(thing);
	return promiseback(newThingPromise, callback);
};

Tests

Simply clone the repo, npm install, and run npm test

2.0.3

5 years ago

2.0.2

10 years ago

2.0.1

10 years ago

2.0.0

11 years ago

1.0.2

11 years ago

1.0.1

11 years ago

1.0.0

11 years ago

0.3.0

11 years ago

0.2.0

11 years ago

0.1.0

11 years ago