All files / fuse-ui-shared deferred.ts

100% Statements 5/5
100% Branches 0/0
100% Functions 2/2
100% Lines 5/5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18            1x       11x 11x 11x     11x    
export type Deferred<T> = {
  promise: Promise<T>;
  resolve(x: T): void;
  reject(r: any): void;
};
 
export function createDeferred<T>(): Deferred<T> {
  let resolve: (x: T) => void;
  let reject: (r: any) => void;
  // tslint:disable-next-line:promise-must-complete
  let promise = new Promise<T>((res, rej) => {
    resolve = res;
    reject = rej;
  });
 
  return { promise, resolve, reject };
}