blob: 96bcceac2baf7d6090ae78cee5fcaf900a9bcb01 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
export function subscribePromise<T>(
promise: Promise<T>,
resolve: Parameters<Promise<T>["then"]>[0],
reject?: Parameters<Promise<T>["then"]>[1],
): {
promise: ReturnType<Promise<T>["then"]>;
(): void;
} {
let subscribe = true;
const p = promise.then(
resolve != null
? (value) => {
if (subscribe) {
resolve(value);
}
}
: undefined,
reject != null
? (error) => {
if (subscribe) {
reject(error);
}
}
: undefined,
);
const result = function () {
subscribe = false;
};
result.promise = p;
return result;
}
|