跳转到内容

全局函数

全局函数是流程脚本可直接调用的JavaScript预设函数。出于安全考虑,极测仅开放了特定子集,而非全部预设函数。极测开放给流程脚本的函数与标准定义一致,同时内部进行了适配流程功能的额外维护与处理。

目前开放的全局函数有:

setTimeout()

设置一个定时器,一旦定时器到期,就会执行一个函数或指定的代码片段。

基础用法:

ts
setTimeout(() => {
  // 执行特定操作
}, 1000); // 设置超时时间为1000毫秒

更详细的用法参见https://developer.mozilla.org/zh-CN/docs/Web/API/setTimeout

clearTimeout()

取消先前通过调用 setTimeout() 建立的超时任务。

基础用法:

ts
const timeoutID = setTimeout(() => {
  // 执行特定操作
}, 1000); // 设置超时时间为1000毫秒

// 中止超时任务
clearTimeout(timeoutID);

更详细的用法参见https://developer.mozilla.org/zh-CN/docs/Web/API/clearTimeout

setTimeoutHires()

本函数与setTimeout()的功能和使用方法均类似。区别是,本函数尽量将定时误差控制在0~1毫秒以内。 但受限于底层操作系统的限制,本功能不仅需要提权,而且在不同平台上的误差表现也会不一样,在Windows系列操作系统 大概率可以把误差控制在+1ms以内,即实现「亚毫秒级」的定时精度。

注意事项:

  1. 本函数建议手动提升权限后调用,例如通过窗口标题栏中的「提升权限」链接,或者执行一次开启了「高精度定时」 的周期发送操作。部分操作系统可能不支持提升权限,例如Windows 10及更高版本。若未提权或提权失败,本函数仍可继续运行, 但定时精度可能会有影响。
  2. 本函数须配合clearTimeoutHires()来使用。

基础用法:

ts
setTimeoutHires(() => {
  // 执行特定操作
}, 1000);

clearTimeoutHires()

取消由setTimeoutHires()创建的异步调用。

基础用法:

ts
const timeoutID = setTimeoutHires(() => {
  // 执行特定操作
}, 1000);

// 中止超时任务
clearTimeoutHires(timeoutID);

setInterval()

重复调用一个函数或执行一个代码片段,在每次调用之间具有固定的时间间隔。

基础用法:

ts
setInterval(() => {
  // 执行特定操作
}, 1000); // 设置间隔时间为1000毫秒

更详细的用法参见https://developer.mozilla.org/zh-CN/docs/Web/API/setInterval

clearInterval()

取消先前通过调用 setInterval() 设置的重复定时任务。

基础用法:

ts
const intervalID = setInterval(() => {
  // 执行特定操作
}, 1000); // 设置间隔时间为1000毫秒

// 中止重复任务
clearInterval(intervalID);

更详细的用法参见https://developer.mozilla.org/zh-CN/docs/Web/API/clearInterval

setIntervalHires()

本函数与setInterval()的功能和使用方法均类似。区别是,本函数尽量将定时误差控制在0~1毫秒以内。 但受限于底层操作系统的限制,本功能不仅需要提权,而且在不同平台上的误差表现也会不一样,在Windows系列操作系统 大概率可以把误差控制在+1ms以内,即实现「亚毫秒级」的定时精度。

注意事项:

  1. 本函数建议手动提升权限后调用,例如通过窗口标题栏中的「提升权限」链接,或者执行一次开启了「高精度定时」 的周期发送操作。部分操作系统可能不支持提升权限,例如Windows 10及更高版本。若未提权或提权失败,本函数仍可继续运行, 但定时精度可能会有影响。
  2. 本函数须配合clearIntervalHires()来使用。

基础用法:

ts
setIntervalHires(() => {
  // 执行特定操作
}, 1000);

clearIntervalHires()

取消由setIntervalHires()创建的异步调用。

基础用法:

ts
const intervalID = setIntervalHires(() => {
  // 执行特定操作
}, 1000);

// 中止重复任务
clearIntervalHires(intervalID);

setImmediate()

把一些需要长时间运行的操作放在一个回调函数里,在完成后面的其他语句后,就立刻执行这个回调函数。

基础用法:

ts
setImmediate(() => {
  // 在所有同步代码执行完成后,执行特定操作 
});

更详细的用法参见https://developer.mozilla.org/zh-CN/docs/Web/API/Window/setImmediate

clearImmediate()

取消通过 setImmediate() 设置的将要执行的语句。

基础用法:

ts
const immediateID = setImmediate(() => {
  // 在所有同步代码执行完成后,执行特定操作 
});

// 中止异步任务
clearImmediate(immediateID);

更详细的用法参见https://developer.mozilla.org/zh-CN/docs/Web/API/Window/clearImmediate