MCPcopy
hub / github.com/axios/axios / constructor

Method constructor

lib/cancel/CancelToken.js:13–63  ·  lib/cancel/CancelToken.js::CancelToken.constructor
(executor)

Source from the content-addressed store, hash-verified

11 */
12class CancelToken {
13 constructor(executor) {
14 if (typeof executor !== class="st">'function') {
15 throw new TypeError(class="st">'executor must be a function.');
16 }
17
18 let resolvePromise;
19
20 this.promise = new Promise(function promiseExecutor(resolve) {
21 resolvePromise = resolve;
22 });
23
24 const token = this;
25
26 class="cm">// eslint-disable-next-line func-names
27 this.promise.then((cancel) => {
28 if (!token._listeners) return;
29
30 let i = token._listeners.length;
31
32 while (i-- > 0) {
33 token._listeners[i](cancel);
34 }
35 token._listeners = null;
36 });
37
38 class="cm">// eslint-disable-next-line func-names
39 this.promise.then = (onfulfilled) => {
40 let _resolve;
41 class="cm">// eslint-disable-next-line func-names
42 const promise = new Promise((resolve) => {
43 token.subscribe(resolve);
44 _resolve = resolve;
45 }).then(onfulfilled);
46
47 promise.cancel = function reject() {
48 token.unsubscribe(_resolve);
49 };
50
51 return promise;
52 };
53
54 executor(function cancel(message, config, request) {
55 if (token.reason) {
56 class="cm">// Cancellation has already been requested
57 return;
58 }
59
60 token.reason = new CanceledError(message, config, request);
61 resolvePromise(token.reason);
62 });
63 }
64
65 /**
66 * Throws a `CanceledError` if cancellation has been requested.

Callers

nothing calls this directly

Calls 2

subscribeMethod · 0.65
unsubscribeMethod · 0.65

Tested by

no test coverage detected