summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/_util/async.ts
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node/polyfills/_util/async.ts')
-rw-r--r--ext/node/polyfills/_util/async.ts31
1 files changed, 1 insertions, 30 deletions
diff --git a/ext/node/polyfills/_util/async.ts b/ext/node/polyfills/_util/async.ts
index a05b670e8..5eeda2a37 100644
--- a/ext/node/polyfills/_util/async.ts
+++ b/ext/node/polyfills/_util/async.ts
@@ -1,39 +1,10 @@
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
-// This module is vendored from std/async/deferred.ts and std/async/delay.ts
+// This module is vendored from std/async/delay.ts
// (with some modifications)
// TODO(petamoriken): enable prefer-primordials for node polyfills
// deno-lint-ignore-file prefer-primordials
-export interface Deferred<T> extends Promise<T> {
- readonly state: "pending" | "fulfilled" | "rejected";
- resolve(value?: T | PromiseLike<T>): void;
- // deno-lint-ignore no-explicit-any
- reject(reason?: any): void;
-}
-
-/** Creates a Promise with the `reject` and `resolve` functions */
-export function deferred<T>(): Deferred<T> {
- let methods;
- let state = "pending";
- const promise = new Promise<T>((resolve, reject) => {
- methods = {
- async resolve(value: T | PromiseLike<T>) {
- await value;
- state = "fulfilled";
- resolve(value);
- },
- // deno-lint-ignore no-explicit-any
- reject(reason?: any) {
- state = "rejected";
- reject(reason);
- },
- };
- });
- Object.defineProperty(promise, "state", { get: () => state });
- return Object.assign(promise, methods) as Deferred<T>;
-}
-
/** Resolve a Promise after a given amount of milliseconds. */
export function delay(
ms: number,