MCPcopy
hub / github.com/microsoft/vscode-js-debug / getDeferred

Function getDeferred

src/common/promiseUtil.ts:62–94  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

60}
61
62export function getDeferred<T>(): IDeferred<T> {
63 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
64 let resolve: IDeferred<T>['resolve'] = null!;
65
66 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
67 let reject: IDeferred<T>['reject'] = null!;
68
69 let settled = false;
70 let settledValue: T | undefined;
71
72 // Promise constructor is called synchronously
73 const promise = new Promise<T>((_resolve, _reject) => {
74 resolve = (value: T) => {
75 settled = true;
76 settledValue = value;
77 _resolve(value);
78 };
79 reject = (error: Error) => {
80 settled = true;
81 _reject(error);
82 };
83 });
84
85 return {
86 resolve,
87 reject,
88 promise,
89 get settledValue() {
90 return settledValue;
91 },
92 hasSettled: () => settled,
93 };
94}

Callers 15

innerCreateServerMethod · 0.90
TreeNodeClass · 0.90
collectInitializeFunction · 0.90
handleFunction · 0.90
acquireDapMethod · 0.90
constructorMethod · 0.90
launchMethod · 0.90
createSessionMethod · 0.90
setupCRAFunction · 0.90
startDevServerFunction · 0.90
getWebviewPortMethod · 0.90
timeoutPromiseFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected