function validate(ok, validatorProperties, scope) {
    if (err) {
      return;
    }
    if (ok === undefined || ok) {
      if (--count <= 0) {
        immediate(function() {
          fn(null);
        });
      }
    } else {
      const ErrorConstructor = validatorProperties.ErrorConstructor || ValidatorError;
      err = new ErrorConstructor(validatorProperties, scope);
      err[validatorErrorSymbol] = true;
      immediate(function() {
        fn(err);
      });
    }
  }
Performs a validation of `value` using the validators declared for this SchemaType.

@param {Any} value
@param {Function} callback
@param {Object} scope
@param {Object} [options]
@param {String} [options.path]
@return {Any} If no validators, returns the output from calling `fn`, otherwise no return
@api public