flashlang/src/utils.ts

19 lines
420 B
TypeScript
Raw Normal View History

2020-08-16 16:11:51 +02:00
type resolveCallback<T> = (value: T) => void;
2020-08-20 15:40:04 +02:00
type rejectCallback = (reason?: unknown) => void;
2020-08-16 16:11:51 +02:00
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!];
};