diff options
Diffstat (limited to 'util')
| -rw-r--r-- | util/deferred.ts | 42 | ||||
| -rw-r--r-- | util/deferred_test.ts | 16 |
2 files changed, 0 insertions, 58 deletions
diff --git a/util/deferred.ts b/util/deferred.ts deleted file mode 100644 index f52087547..000000000 --- a/util/deferred.ts +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. - -export type Deferred<T = any, R = Error> = { - promise: Promise<T>; - resolve: (t?: T) => void; - reject: (r?: R) => void; - readonly handled: boolean; -}; - -/** Create deferred promise that can be resolved and rejected by outside */ -export function defer<T>(): Deferred<T> { - let handled = false; - let resolve; - let reject; - const promise = new Promise<T>((res, rej) => { - resolve = r => { - handled = true; - res(r); - }; - reject = r => { - handled = true; - rej(r); - }; - }); - return { - promise, - resolve, - reject, - get handled() { - return handled; - } - }; -} - -export function isDeferred(x): x is Deferred { - return ( - typeof x === "object" && - x.promise instanceof Promise && - typeof x["resolve"] === "function" && - typeof x["reject"] === "function" - ); -} diff --git a/util/deferred_test.ts b/util/deferred_test.ts deleted file mode 100644 index a397b3012..000000000 --- a/util/deferred_test.ts +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. - -import { assert, test } from "../testing/mod.ts"; -import { defer, isDeferred } from "./deferred.ts"; - -test(async function asyncIsDeferred() { - const d = defer(); - assert.assert(isDeferred(d)); - assert.assert( - isDeferred({ - promise: null, - resolve: () => {}, - reject: () => {} - }) === false - ); -}); |
