diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-12-02 17:35:47 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-12-02 17:35:47 +0100 |
commit | b5ee6b7b4ee506712f51e1b90e9256c4b0c0c603 (patch) | |
tree | 7d8bb4398ab52b58a5223d37e058eaea6c72f963 /src/util/promiseUtils.ts | |
parent | e1369ff7e8fc02116b9c4261036f0e42e3423cf4 (diff) | |
download | wallet-core-b5ee6b7b4ee506712f51e1b90e9256c4b0c0c603.tar.xz |
pending operations WIP
Diffstat (limited to 'src/util/promiseUtils.ts')
-rw-r--r-- | src/util/promiseUtils.ts | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/util/promiseUtils.ts b/src/util/promiseUtils.ts index eb649471b..9add2c407 100644 --- a/src/util/promiseUtils.ts +++ b/src/util/promiseUtils.ts @@ -36,4 +36,25 @@ export function openPromise<T>(): OpenedPromise<T> { throw Error(); } return { resolve, reject, promise }; +} + +export class AsyncCondition { + private _waitPromise: Promise<void>; + private _resolveWaitPromise: (val: void) => void; + constructor() { + const op = openPromise<void>(); + this._waitPromise = op.promise; + this._resolveWaitPromise = op.resolve; + } + + wait(): Promise<void> { + return this._waitPromise; + } + + trigger(): void { + this._resolveWaitPromise(); + const op = openPromise<void>(); + this._waitPromise = op.promise; + this._resolveWaitPromise = op.resolve; + } }
\ No newline at end of file |