constant = function(/*...values*/) {
    var values = slice(arguments);
    var args = [null].concat(values);
    return function (/*...ignoredArgs, callback*/) {
        var callback = arguments[arguments.length - 1];
        return callback.apply(this, args);
    };
}
Returns a function that when called, calls-back with the values provided.
Useful as the first function in a [`waterfall`]{@link module:ControlFlow.waterfall}, or for plugging values in to
[`auto`]{@link module:ControlFlow.auto}.

@name constant
@static
@memberOf module:Utils
@method
@category Util
@param {...*} arguments... - Any number of arguments to automatically invoke
callback with.
@returns {AsyncFunction} Returns a function that when invoked, automatically
invokes the callback with the previous given arguments.
@example

async.waterfall([
    async.constant(42),
    function (value, next) {
        // value === 42
    },
    //...
], callback);

async.waterfall([
    async.constant(filename, "utf8"),
    fs.readFile,
    function (fileData, next) {
        //...
    }
    //...
], callback);

async.auto({
    hostname: async.constant("https://server.net/"),
    port: findFreePort,
    launchServer: ["hostname", "port", function (options, cb) {
        startServer(options, cb);
    }],
    //...
}, callback);