| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | 
							- 'use strict';
 
- var Cancel = require('./Cancel');
 
- /**
 
-  * A `CancelToken` is an object that can be used to request cancellation of an operation.
 
-  *
 
-  * @class
 
-  * @param {Function} executor The executor function.
 
-  */
 
- function CancelToken(executor) {
 
-   if (typeof executor !== 'function') {
 
-     throw new TypeError('executor must be a function.');
 
-   }
 
-   var resolvePromise;
 
-   this.promise = new Promise(function promiseExecutor(resolve) {
 
-     resolvePromise = resolve;
 
-   });
 
-   var token = this;
 
-   executor(function cancel(message) {
 
-     if (token.reason) {
 
-       // Cancellation has already been requested
 
-       return;
 
-     }
 
-     token.reason = new Cancel(message);
 
-     resolvePromise(token.reason);
 
-   });
 
- }
 
- /**
 
-  * Throws a `Cancel` if cancellation has been requested.
 
-  */
 
- CancelToken.prototype.throwIfRequested = function throwIfRequested() {
 
-   if (this.reason) {
 
-     throw this.reason;
 
-   }
 
- };
 
- /**
 
-  * Returns an object that contains a new `CancelToken` and a function that, when called,
 
-  * cancels the `CancelToken`.
 
-  */
 
- CancelToken.source = function source() {
 
-   var cancel;
 
-   var token = new CancelToken(function executor(c) {
 
-     cancel = c;
 
-   });
 
-   return {
 
-     token: token,
 
-     cancel: cancel
 
-   };
 
- };
 
- module.exports = CancelToken;
 
 
  |