diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-06-15 22:44:54 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-06-15 22:44:54 +0200 |
commit | 2ee9431f1ba5bf67546bbf85758a01991c40673f (patch) | |
tree | 4581c4f3c966d742c66ea7f4bae4f9a3f8e2f5ff /packages/idb-bridge/src/util/openPromise.ts | |
parent | 65eb8b96f894491d406f91070df53ccbd43d19c9 (diff) | |
download | wallet-core-2ee9431f1ba5bf67546bbf85758a01991c40673f.tar.gz wallet-core-2ee9431f1ba5bf67546bbf85758a01991c40673f.tar.bz2 wallet-core-2ee9431f1ba5bf67546bbf85758a01991c40673f.zip |
idb wip
Diffstat (limited to 'packages/idb-bridge/src/util/openPromise.ts')
-rw-r--r-- | packages/idb-bridge/src/util/openPromise.ts | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/packages/idb-bridge/src/util/openPromise.ts b/packages/idb-bridge/src/util/openPromise.ts new file mode 100644 index 000000000..3f6da81bd --- /dev/null +++ b/packages/idb-bridge/src/util/openPromise.ts @@ -0,0 +1,22 @@ +function openPromise<T>(): { + promise: Promise<T>; + resolve: (v?: T | PromiseLike<T>) => void; + reject: (err?: any) => void; +} { + let resolve; + let reject; + const promise = new Promise<T>((resolve2, reject2) => { + resolve = resolve2; + reject = reject2; + }); + if (!resolve) { + throw Error("broken invariant"); + } + if (!reject) { + throw Error("broken invariant"); + } + + return { promise, resolve, reject }; +} + +export default openPromise; |