aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/undici/lib/util/promise.js
blob: 048f86e34ef9dcefc152cdea36c704588e3bd1d9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
'use strict'

/**
 * @template {*} T
 * @typedef {Object} DeferredPromise
 * @property {Promise<T>} promise
 * @property {(value?: T) => void} resolve
 * @property {(reason?: any) => void} reject
 */

/**
 * @template {*} T
 * @returns {DeferredPromise<T>} An object containing a promise and its resolve/reject methods.
 */
function createDeferredPromise () {
  let res
  let rej
  const promise = new Promise((resolve, reject) => {
    res = resolve
    rej = reject
  })

  return { promise, resolve: res, reject: rej }
}

module.exports = {
  createDeferredPromise
}