summaryrefslogtreecommitdiff
path: root/lib/internal/promiseCallback.js
blob: cbbd3ad4b1b92ed0120a798d8ac955e6250a11c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import noop from 'lodash/noop';

var supportsPromise = typeof Promise === 'function';

export default supportsPromise ? promiseCallback : noopCallback;

function noopCallback() {
    return noop;
}

function promiseCallback() {
    var resolve, reject;
    function callback(err, value) {
        if (err) return reject(err);
        resolve(value);
    }

    callback.promise = new Promise(function (res, rej) {
        resolve = res;
        reject = rej;
    })

    return callback;
}