2019-06-23 03:35:23 -07:00
|
|
|
// From: https://gist.github.com/compulim/8b49b0a744a3eeb2205e2b9506201e50
|
|
|
|
export interface IDeferredPromise<T> {
|
|
|
|
promise: () => Promise<T>;
|
|
|
|
reject: (error: Error) => void;
|
|
|
|
resolve: (result: T) => void;
|
|
|
|
}
|
|
|
|
|
2023-03-22 06:04:15 -07:00
|
|
|
export async function createDeferredPromise<T = void>(): Promise<IDeferredPromise<T>> {
|
2024-01-17 07:08:50 -08:00
|
|
|
return await new Promise<IDeferredPromise<T>>((resolveCreate) => {
|
2019-06-23 03:35:23 -07:00
|
|
|
const promise = new Promise<T>((resolve, reject) => {
|
2024-01-17 07:08:50 -08:00
|
|
|
resolveCreate({ promise: async () => await promise, resolve, reject });
|
2019-06-23 03:35:23 -07:00
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|