/** * Return a promise that can be externally resolved */ export const createDeferred = () => { let resolve!: (value: T | PromiseLike) => void let reject!: (reason: any) => void const promise = new Promise((_resolve, _reject) => { resolve = _resolve reject = _reject }) return { resolve, reject, promise, } }