全局函数
全局函数是流程脚本可直接调用的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以内,即实现「亚毫秒级」的定时精度。
注意事项:
- 本函数建议手动提升权限后调用,例如通过窗口标题栏中的「提升权限」链接,或者执行一次开启了「高精度定时」 的周期发送操作。部分操作系统可能不支持提升权限,例如Windows 10及更高版本。若未提权或提权失败,本函数仍可继续运行, 但定时精度可能会有影响。
- 本函数须配合
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以内,即实现「亚毫秒级」的定时精度。
注意事项:
- 本函数建议手动提升权限后调用,例如通过窗口标题栏中的「提升权限」链接,或者执行一次开启了「高精度定时」 的周期发送操作。部分操作系统可能不支持提升权限,例如Windows 10及更高版本。若未提权或提权失败,本函数仍可继续运行, 但定时精度可能会有影响。
- 本函数须配合
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。
