small refactoring to prepare async work

This commit is contained in:
Géry Debongnie
2019-02-07 12:10:44 +01:00
parent 87facd993b
commit f648f47197
3 changed files with 34 additions and 19 deletions
+16
View File
@@ -199,3 +199,19 @@ export function nextMicroTick(): Promise<void> {
export function nextTick(): Promise<void> {
return new Promise(resolve => setTimeout(resolve));
}
interface Deferred extends Promise<any> {
resolve(val?: any): void;
reject(): void;
}
export function makeDeferred(): Deferred {
let resolve, reject;
let def = new Promise((_resolve, _reject) => {
resolve = _resolve;
reject = _reject;
});
(<Deferred>def).resolve = resolve;
(<Deferred>def).reject = reject;
return <Deferred>def;
}