n8n/packages/workflow/src/DeferredPromise.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

18 lines
495 B
TypeScript
Raw Permalink Normal View History

type ResolveFn<T> = (result: T | PromiseLike<T>) => void;
type RejectFn = (error: Error) => void;
2019-06-23 03:35:23 -07:00
export interface IDeferredPromise<T> {
promise: Promise<T>;
resolve: ResolveFn<T>;
reject: RejectFn;
2019-06-23 03:35:23 -07:00
}
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;
2019-06-23 03:35:23 -07:00
});
return deferred as IDeferredPromise<T>;
2019-06-23 03:35:23 -07:00
}