promises.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. var _ = require("underscore");
  2. var bluebird = require("bluebird/js/release/promise")();
  3. exports.defer = defer;
  4. exports.when = bluebird.resolve;
  5. exports.resolve = bluebird.resolve;
  6. exports.all = bluebird.all;
  7. exports.props = bluebird.props;
  8. exports.reject = bluebird.reject;
  9. exports.promisify = bluebird.promisify;
  10. exports.mapSeries = bluebird.mapSeries;
  11. exports.attempt = bluebird.attempt;
  12. exports.nfcall = function(func) {
  13. var args = Array.prototype.slice.call(arguments, 1);
  14. var promisedFunc = bluebird.promisify(func);
  15. return promisedFunc.apply(null, args);
  16. };
  17. bluebird.prototype.fail = bluebird.prototype.caught;
  18. bluebird.prototype.also = function(func) {
  19. return this.then(function(value) {
  20. var returnValue = _.extend({}, value, func(value));
  21. return bluebird.props(returnValue);
  22. });
  23. };
  24. function defer() {
  25. var resolve;
  26. var reject;
  27. var promise = new bluebird.Promise(function(resolveArg, rejectArg) {
  28. resolve = resolveArg;
  29. reject = rejectArg;
  30. });
  31. return {
  32. resolve: resolve,
  33. reject: reject,
  34. promise: promise
  35. };
  36. }