export function executablePromise(): [Promise, (value?: T | PromiseLike) => void, (err?: any) => void] { let resolve: (value?: T | PromiseLike) => void let reject: (err?: any) => void const promise = new Promise((res, rej) => { resolve = res reject = rej }) return [promise, resolve, reject] }