MCPcopy
hub / github.com/facebook/react / then

Function then

packages/react-cache/src/__tests__/ReactCacheOld-test.internal.js:52–84  ·  view source on GitHub ↗
(resolve, reject)

Source from the content-addressed store, hash-verified

50 let value = null;
51 return {
52 then(resolve, reject) {
53 switch (status) {
54 case 'pending': {
55 if (listeners === null) {
56 listeners = [{resolve, reject}];
57 setTimeout(() => {
58 if (textResourceShouldFail) {
59 Scheduler.log(`Promise rejected [${text}]`);
60 status = 'rejected';
61 value = new Error('Failed to load: ' + text);
62 listeners.forEach(listener => listener.reject(value));
63 } else {
64 Scheduler.log(`Promise resolved [${text}]`);
65 status = 'resolved';
66 value = text;
67 listeners.forEach(listener => listener.resolve(value));
68 }
69 }, ms);
70 } else {
71 listeners.push({resolve, reject});
72 }
73 break;
74 }
75 case 'resolved': {
76 resolve(value);
77 break;
78 }
79 case 'rejected': {
80 reject(value);
81 break;
82 }
83 }
84 },
85 };
86 },
87 ([text, ms]) => text,

Callers 1

Calls 5

forEachMethod · 0.65
pushMethod · 0.65
resolveFunction · 0.50
rejectFunction · 0.50
listenerFunction · 0.50

Tested by

no test coverage detected