此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

WorkerGlobalScope:setTimeout() 方法

基线
广泛可用
*

自 2015年7月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

* 此特性的某些部分的支持程度可能有所不同。

备注: 此特性仅在 Web Worker 中可用。

WorkerGlobalScope 接口的 setTimeout() 方法设置一个定时器,一旦定时器到期,就会执行一个函数或指定的代码片段。

语法

js
setTimeout(code)
setTimeout(code, delay)

setTimeout(functionRef)
setTimeout(functionRef, delay)
setTimeout(functionRef, delay, param1)
setTimeout(functionRef, delay, param1, param2)
setTimeout(functionRef, delay, param1, param2, /* …, */ paramN)

参数

functionRef

当定时器到期后要执行的函数。

code

这是一个代替语法,允许你包含在定时器到期后编译和执行的字符串而非函数。这个语法因为与 eval() 存在相同的安全风险所以不推荐使用。

delay 可选

定时器在执行指定的函数或代码之前应该等待的时间,单位是毫秒。如果省略该参数,则使用值 0,意味着“立即”执行,或者更准确地说,在下一个事件循环执行。

注意,无论是哪种情况,实际延迟可能会比预期长一些,参见延时比指定值更长的原因。

还要注意的是,如果值不是数字,隐式的类型强制转换会静默地将其转换为数字——这可能导致意想不到的、令人惊讶的结果;参见非数字延迟值被静默地强制转化为数字以获取示例。

param1、……、paramN 可选

会被传递给由 functionRef 指定的函数的附加参数。

返回值

返回值 timeoutID 是一个正整数,表示由 setTimeout() 调用创建的定时器的标识符。可以将这个值传递给 clearTimeout() 来取消该定时器。

在定时器仍然激活的情况下,保证 timeoutID 值不会被同一 worker 中的后续 setTimeout() 或 setInterval() 调用重复使用。然而,不同的对象使用不同的 ID 池。

描述

参见 Window.setTimeout() 以获取详细的描述。

示例

参见 Window.setTimeout() 以获取示例。

规范

规范
HTML
# dom-settimeout-dev

浏览器兼容性

参见