Skip to content

Instantly share code, notes, and snippets.

@manbearwiz
Created December 12, 2023 20:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save manbearwiz/571f97eb82ad9a10f4ba8afda15fdb2b to your computer and use it in GitHub Desktop.
Save manbearwiz/571f97eb82ad9a10f4ba8afda15fdb2b to your computer and use it in GitHub Desktop.
function generateDeferredPromise<T>(): {
promise: Promise<T>;
reject: (reason?: unknown) => void;
resolve: (value: T | PromiseLike<T>) => void;
} {
let resolve!: (value: T | PromiseLike<T>) => void;
let reject!: (reason?: unknown) => void;
const promise = new Promise<T>((res, rej) => {
[resolve, reject] = [res, rej];
});
return { promise, reject, resolve };
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment