UNPKG

react-viewport-utils

Version:

Utility components for working with the viewport in react

24 lines (18 loc) 501 B
// @flow strict-local import invariant from 'assert'; export type Deferred<T> = {| resolve(T): void, reject(mixed): void, |}; export function makeDeferredWithPromise<T>(): {| deferred: Deferred<T>, promise: Promise<T>, |} { let deferred: ?Deferred<T>; let promise = new Promise<T>((resolve, reject) => { deferred = {resolve, reject}; }); // Promise constructor callback executes synchronously, so this is defined invariant(deferred != null); return {deferred, promise}; }