summaryrefslogtreecommitdiff
path: root/lib/internal/promiseCallback.js
blob: 685dd7aa10048381bf5ae54921440d025f9404de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const PROMISE_SYMBOL = Symbol('promiseCallback')

function promiseCallback () {
    let resolve, reject
    function callback (err, ...args) {
        if (err) return reject(err)
        resolve(args.length > 1 ? args : args[0])
    }

    callback[PROMISE_SYMBOL] = new Promise((res, rej) => {
        resolve = res,
        reject = rej
    })

    return callback
}


export { promiseCallback, PROMISE_SYMBOL }