/** * * @returns {(Promise & {resolve: (r?: any)=>void; reject: (reason)=>void;})} */ export function delayedPromise() { let res = null; let rej = null; const deferredPromise = new Promise((resolve, reject) => { res = resolve; rej = reject; }); Object.assign(deferredPromise, { resolve: res, reject: rej, }); return deferredPromise; }