19 lines
415 B
TypeScript
19 lines
415 B
TypeScript
|
type resolveCallback<T> = (value: T) => void;
|
||
|
type rejectCallback = (reason: any) => void;
|
||
|
|
||
|
export const newPromise = <T>(): [
|
||
|
Promise<T>,
|
||
|
resolveCallback<T>,
|
||
|
rejectCallback
|
||
|
] => {
|
||
|
let resolve: resolveCallback<T>;
|
||
|
let reject: rejectCallback;
|
||
|
const promise = new Promise(
|
||
|
(res: resolveCallback<T>, rej: rejectCallback) => {
|
||
|
resolve = res;
|
||
|
reject = rej;
|
||
|
}
|
||
|
);
|
||
|
return [promise, resolve!, reject!];
|
||
|
};
|