Validation vee validate以什么顺序与验证器一起工作?(同步和异步)

Validation vee validate以什么顺序与验证器一起工作?(同步和异步),validation,vue.js,vee-validate,Validation,Vue.js,Vee Validate,我是新手,我想知道与字段相关联的顺序验证器函数(规则)是如何被验证的?(因为医生没有真正提到) 我已经习惯并想知道是否在异步验证之前调用同步验证程序。在查看了关于validator.js启动的VeeValidate2.0.9源代码后,我们可以注意到一个\u validate方法,该方法将(大致): 使用字段规则创建一个数组,然后对其执行 使用并存储结果(这是验证的直接结果或承诺) 将异步(如果此验证器实例上的属性为false,则同步)验证器(Promise)堆栈在一个具有push 如果同步验证程

我是新手,我想知道与字段相关联的顺序验证器函数(规则)是如何被验证的?(因为医生没有真正提到)


我已经习惯并想知道是否在异步验证之前调用同步验证程序。

在查看了关于validator.js启动的VeeValidate2.0.9源代码后,我们可以注意到一个
\u validate
方法,该方法将(大致):

  • 使用字段规则创建一个
    数组
    ,然后对其执行
  • 使用并存储
    结果
    (这是验证的直接结果或
    承诺

  • 将异步(如果此验证器实例上的属性为false,则同步)验证器(
    Promise
    )堆栈在一个具有
    push

  • 如果同步验证程序出现错误,请退出(使用
    fastExit
    属性)

  • 包含所有结果的
    数组
    ,用于返回错误叠加的最终结果

  • 因此,引用MDN的方法:

    Object.keys()方法返回给定对象的属性数组名称,顺序与普通循环相同

    引用另一句话:

    :

    目前,所有主要浏览器都会循环浏览中对象的属性 它们被定义的顺序。Chrome也能做到这一点,除了 有几个案子。[…]此行为未明确定义 根据ECMAScript规范。在ECMA-262第12.6.4节中:

    枚举属性的机制。。。依赖于实现

    然而,规范和实现是完全不同的。ECMAScript的所有现代实现都按照对象属性的定义顺序迭代对象属性。正因为如此,Chrome团队认为这是一个bug,并将修复它

    结论 最终顺序取决于
    对象.键的浏览器实现,因此主要取决于验证器的定义顺序,但也可以是字母顺序

    默认情况下,
    fastExit
    属性为
    false
    ,但可以在验证程序选项中覆盖。此选项将从同步验证器获取第一个
    false
    结果并返回其错误。如果未设置,则在验证每个验证器后,结果将是所有错误的汇编。