From b5ee6b7b4ee506712f51e1b90e9256c4b0c0c603 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 2 Dec 2019 17:35:47 +0100 Subject: pending operations WIP --- src/util/promiseUtils.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/util/promiseUtils.ts') 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(): OpenedPromise { throw Error(); } return { resolve, reject, promise }; +} + +export class AsyncCondition { + private _waitPromise: Promise; + private _resolveWaitPromise: (val: void) => void; + constructor() { + const op = openPromise(); + this._waitPromise = op.promise; + this._resolveWaitPromise = op.resolve; + } + + wait(): Promise { + return this._waitPromise; + } + + trigger(): void { + this._resolveWaitPromise(); + const op = openPromise(); + this._waitPromise = op.promise; + this._resolveWaitPromise = op.resolve; + } } \ No newline at end of file -- cgit v1.2.3