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!];
|
|
|
|
};
|