export function subscribePromise( promise: Promise, resolve: Parameters["then"]>[0], reject?: Parameters["then"]>[1], ): { promise: ReturnType["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; }