1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- function Cancel(message) {
- this.message = message;
- console.log('1 cancel')
- }
- Cancel.prototype.toString = function toString() {
- return 'Cancel' + (this.message ? ': ' + this.message : '');
- };
- Cancel.prototype.__CANCEL__ = true;
- function CancelToken(executor) {
- if (typeof executor !== 'function') {
- throw new TypeError('executor must be a function.');
- }
- //console.log('2 CancelToken')
- var resolvePromise;
- this.promise = new Promise(function promiseExecutor(resolve) {
- resolvePromise = resolve;
- //console.log('3 CancelToken')
- });
- var token = this;
- executor(function cancel(message) {
- //console.log('4 CancelToken')
- if (token.reason) {
- // Cancellation has already been requested
- return;
- }
- //console.log('5 CancelToken')
- token.reason = new Cancel(message);
- resolvePromise(token.reason);
- });
- }
- /**
- * Throws a `Cancel` if cancellation has been requested.
- */
- CancelToken.prototype.throwIfRequested = function throwIfRequested() {
- //console.log('6 CancelToken')
- 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;
- console.log('7 CancelToken')
- var token = new CancelToken(function executor(c) {
- cancel = c;
- });
- return {
- token: token,
- cancel: cancel
- };
- };
- function isCancel(value) {
- console.log('8 isCancel')
- return !!(value && value.__CANCEL__);
- };
- export {CancelToken,Cancel,isCancel}
|