mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-19 19:11:13 +00:00
refactor(core): Simplify createDeferredPromise, and add tests (no-changelog) (#10811)
This commit is contained in:
committed by
GitHub
parent
d647ef41ac
commit
cef64329a9
@@ -1,14 +1,17 @@
|
||||
// From: https://gist.github.com/compulim/8b49b0a744a3eeb2205e2b9506201e50
|
||||
type ResolveFn<T> = (result: T | PromiseLike<T>) => void;
|
||||
type RejectFn = (error: Error) => void;
|
||||
|
||||
export interface IDeferredPromise<T> {
|
||||
promise: () => Promise<T>;
|
||||
reject: (error: Error) => void;
|
||||
resolve: (result: T) => void;
|
||||
promise: Promise<T>;
|
||||
resolve: ResolveFn<T>;
|
||||
reject: RejectFn;
|
||||
}
|
||||
|
||||
export async function createDeferredPromise<T = void>(): Promise<IDeferredPromise<T>> {
|
||||
return await new Promise<IDeferredPromise<T>>((resolveCreate) => {
|
||||
const promise = new Promise<T>((resolve, reject) => {
|
||||
resolveCreate({ promise: async () => await promise, resolve, reject });
|
||||
});
|
||||
export function createDeferredPromise<T = void>(): IDeferredPromise<T> {
|
||||
const deferred: Partial<IDeferredPromise<T>> = {};
|
||||
deferred.promise = new Promise<T>((resolve, reject) => {
|
||||
deferred.resolve = resolve;
|
||||
deferred.reject = reject;
|
||||
});
|
||||
return deferred as IDeferredPromise<T>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user