index.ts 491 B

1234567891011121314151617
  1. export type Resolvable<T> = Promise<T> & {
  2. resolve: (t: T) => void,
  3. reject: (e: any) => void,
  4. }
  5. const resolvablePromise = <T = void>(): Resolvable<T> => {
  6. let resolve: (val: T) => void
  7. let reject: (err: any) => void
  8. const promise = new Promise<T>((_resolve, _reject) => {
  9. resolve = _resolve
  10. reject = _reject
  11. }) as Resolvable<T>
  12. promise.resolve = resolve!
  13. promise.reject = reject!
  14. return promise
  15. }
  16. export default resolvablePromise
  17. module.exports = resolvablePromise