done = function (err, result) {
            if (err) {
                // errors are `null` unless there is an error, which allows for promisification
                errors = errors || [];
                errors.push(err);
            }
            results.push(result);
            if (--total === 0) {
                callback(errors, results)
            }
        }
helper to wait for all callbacks to complete; similar to `Promise.all`
exposed to metrics object for unit tests
@param {Array} requests
@param {Function} handler
@param {Function} callback