WorkerGlobalScope:setTimeout() 方法

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

io error: No such file or directory (os error 2) (/home/runner/work/yari/yari/mdn/translated-content/files/zh-cn/web/api/workerglobalscope/index.md)

备注: 此特性仅在 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() 以获取示例。

规范

Specification
HTML Standard
# dom-settimeout-dev

浏览器兼容性

BCD tables only load in the browser

参见