You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
42 lines
1.1 KiB
var _ = require("underscore");
|
|
var bluebird = require("bluebird/js/release/promise")();
|
|
|
|
exports.defer = defer;
|
|
exports.when = bluebird.resolve;
|
|
exports.resolve = bluebird.resolve;
|
|
exports.all = bluebird.all;
|
|
exports.props = bluebird.props;
|
|
exports.reject = bluebird.reject;
|
|
exports.promisify = bluebird.promisify;
|
|
exports.mapSeries = bluebird.mapSeries;
|
|
exports.attempt = bluebird.attempt;
|
|
|
|
exports.nfcall = function(func) {
|
|
var args = Array.prototype.slice.call(arguments, 1);
|
|
var promisedFunc = bluebird.promisify(func);
|
|
return promisedFunc.apply(null, args);
|
|
};
|
|
|
|
bluebird.prototype.fail = bluebird.prototype.caught;
|
|
|
|
bluebird.prototype.also = function(func) {
|
|
return this.then(function(value) {
|
|
var returnValue = _.extend({}, value, func(value));
|
|
return bluebird.props(returnValue);
|
|
});
|
|
};
|
|
|
|
function defer() {
|
|
var resolve;
|
|
var reject;
|
|
var promise = new bluebird.Promise(function(resolveArg, rejectArg) {
|
|
resolve = resolveArg;
|
|
reject = rejectArg;
|
|
});
|
|
|
|
return {
|
|
resolve: resolve,
|
|
reject: reject,
|
|
promise: promise
|
|
};
|
|
}
|
|
|