Sha256: 90002a7195dedd8ab92e3724ff3fe1fb77d2a106435042ef25f3d4e6bed4e3a7
Contents?: true
Size: 1.37 KB
Versions: 25
Compression:
Stored size: 1.37 KB
Contents
"use strict"; module.exports = function(Promise) { var errors = require("./errors.js"); var async = require("./async.js"); var CancellationError = errors.CancellationError; Promise.prototype._cancel = function (reason) { if (!this.isCancellable()) return this; var parent; var promiseToReject = this; while ((parent = promiseToReject._cancellationParent) !== undefined && parent.isCancellable()) { promiseToReject = parent; } this._unsetCancellable(); promiseToReject._target()._rejectCallback(reason, false, true); }; Promise.prototype.cancel = function (reason) { if (!this.isCancellable()) return this; if (reason === undefined) reason = new CancellationError(); async.invokeLater(this._cancel, this, reason); return this; }; Promise.prototype.cancellable = function () { if (this._cancellable()) return this; async.enableTrampoline(); this._setCancellable(); this._cancellationParent = undefined; return this; }; Promise.prototype.uncancellable = function () { var ret = this.then(); ret._unsetCancellable(); return ret; }; Promise.prototype.fork = function (didFulfill, didReject, didProgress) { var ret = this._then(didFulfill, didReject, didProgress, undefined, undefined); ret._setCancellable(); ret._cancellationParent = undefined; return ret; }; };
Version data entries
25 entries across 19 versions & 6 rubygems