MCPcopy
hub / github.com/mongodb/node-mongodb-native / abortable

Function abortable

src/utils.ts:1435–1456  ·  src/utils.ts::abortable
(
  promise: Promise<T>,
  { signal }: { signal?: AbortSignal }
)

Source from the content-addressed store, hash-verified

1433 * @param options - An options object carrying an optional signal
1434 */
1435export async function abortable<T>(
1436 promise: Promise<T>,
1437 { signal }: { signal?: AbortSignal }
1438): Promise<T> {
1439 if (signal == null) {
1440 return await promise;
1441 }
1442
1443 const { promise: aborted, reject } = promiseWithResolvers<never>();
1444
1445 const abortListener = signal.aborted
1446 ? reject(signal.reason)
1447 : addAbortListener(signal, function () {
1448 reject(this.reason);
1449 });
1450
1451 try {
1452 return await Promise.race([promise, aborted]);
1453 } finally {
1454 abortListener?.[kDispose]();
1455 }
1456}

Callers 3

commandMethod · 0.90
executeOperationFunction · 0.90
utils.test.tsFile · 0.85

Calls 2

promiseWithResolversFunction · 0.85
addAbortListenerFunction · 0.85

Tested by

no test coverage detected