diff options
Diffstat (limited to 'node_modules/when/lib/decorators/fold.js')
| -rw-r--r-- | node_modules/when/lib/decorators/fold.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/node_modules/when/lib/decorators/fold.js b/node_modules/when/lib/decorators/fold.js new file mode 100644 index 00000000..c7f027aa --- /dev/null +++ b/node_modules/when/lib/decorators/fold.js @@ -0,0 +1,27 @@ +/** @license MIT License (c) copyright 2010-2014 original author or authors */ +/** @author Brian Cavalier */ +/** @author John Hann */ +/** @author Jeff Escalante */ + +(function(define) { 'use strict'; +define(function() { + + return function fold(Promise) { + + Promise.prototype.fold = function(f, z) { + var promise = this._beget(); + + this._handler.fold(function(z, x, to) { + Promise._handler(z).fold(function(x, z, to) { + to.resolve(f.call(this, z, x)); + }, x, this, to); + }, z, promise._handler.receiver, promise._handler); + + return promise; + }; + + return Promise; + }; + +}); +}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); })); |
