cosmos-explorer/src/Utils/PromiseSource.ts
Ashley Stanton-Nurse 98c5fe65e6
Use new Fluent-based Resource Tree for all environments (#1841)
Co-authored-by: Laurent Nguyen <laurent.nguyen@microsoft.com>
2024-05-29 09:56:27 -07:00

19 lines
510 B
TypeScript

export default class PromiseSource<T = void> {
promise: Promise<T>;
resolve: (value: T) => void;
reject: (reason?: unknown) => void;
constructor() {
this.promise = new Promise((resolve, reject) => {
this.resolve = resolve;
this.reject = reject;
});
}
/** Resolves the promise, then gets off the thread and waits until the currently-registered 'then' callback run. */
async resolveAndWait(value: T): Promise<T> {
this.resolve(value);
return await this.promise;
}
}