diff options
Diffstat (limited to 'ext/node/polyfills/_util')
-rw-r--r-- | ext/node/polyfills/_util/async.ts | 31 |
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, |