flashlang/src/utils.ts
2020-08-20 15:40:04 +02:00

18 lines
420 B
TypeScript

type resolveCallback<T> = (value: T) => void;
type rejectCallback = (reason?: unknown) => 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!];
};