Skip to main content

Form OnLoad

formOnLoad 事件会在加载表单数据时发生,特别是:

  • 在初始页面加载时。
  • 当在保存记录的页面上刷新数据时。

支持异步事件处理​

formOnLoad 事件处理程序有能力支持以异步的方式处理程序逻辑。当事件处理程序返回一个 Promise 时,formOnLoad 事件变为异步。注意,formOnLoad脚本处理逻辑是有超时限制的,每一个 formOnLoad事件处理时间不能超过 10 秒。

formOnLoad 事件只会等待处理程序返回一个 Promise 。如果需要在处理程序中处理多个 Promise,建议将所有 Promise 包装在 Promise.all() 方法中并返回单个结果 Promise。这可以尽量减少超时导致的等待时间。

异步事件处理超时​

使用异步处理程序时,表单加载将等待承诺被履行。为确保加载按时完成,处理程序会在 10 秒后引发超时异常,以便让您知道并且去调整异步 OnLoad 事件以获得更好的性能。

在某些情况下,您可能希望挂起 OnLoad 执行,这时候如果发生超时将产生超时错误。一个例子是在异步 OnLoad 中打开一个对话框并会等待用户进行确认。此时要确保 OnLoad 异步操作一直等待,您可以通过 调用 OnLoad 事件参数中ctx.getEventArgs().disableAsyncTimeout()。设置 disableAsyncTimeout 时,将不会应用该处理程序的超时。它将继续等待该处理程序执行完成。

caution

disableAsyncTimeout 要谨慎使用,因为它可能会影响表单加载的性能。