28 lines
699 B
JavaScript
28 lines
699 B
JavaScript
|
/** @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(); }));
|