class Wait { private _resolve: ((value: T) => void) | null = null; public wait(): Promise { return new Promise(resolve => this._resolve = resolve); } public resolve(value: T): void { if (this._resolve) { this._resolve(value); this.dispose(); } } public dispose():void{ this._resolve=null; } } export default function get_new_wait(): Wait { return new Wait(); }