WorkerGlobalScope: setInterval() 方法

Baseline 廣泛可用 *

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

* 此特性的某些部分可能存在不同級別的支援。

注意:此功能僅在 Web Workers 中可用。

WorkerGlobalScope 介面的 setInterval() 方法會以固定的時間間隔重複呼叫一個函式或執行一段程式碼。

此方法在 window 上下文中也可用:有關 setInterval() 的詳細描述,請參閱 Window.setInterval() 頁面。

語法

js
setInterval(code)
setInterval(code, delay)

setInterval(func)
setInterval(func, delay)
setInterval(func, delay, arg1)
setInterval(func, delay, arg1, arg2)
setInterval(func, delay, arg1, arg2, /* …, */ argN)

引數

func

一個要每 delay 毫秒執行一次的 函式。第一次執行發生在 delay 毫秒之後。

code

一個可選的語法允許你傳入一個字串而不是函式,該字串將在每 delay 毫秒時進行編譯和執行。出於與 eval() 相同的安全風險原因,這種語法是不推薦的。

delay 可選

計時器在執行指定函式或程式碼的兩次執行之間應該延遲的時間(以毫秒為單位)。如果未指定,則預設為 0。有關 delay 值允許範圍的詳細資訊,請參閱 延遲限制

arg1, …, argN 可選

當計時器到期時,會傳遞給 func 指定的函式。這些是額外的引數。

返回值

setInterval() 方法返回一個正整數(通常在 1 到 2,147,483,647 的範圍內),該整數唯一標識了呼叫建立的間隔計時器。此識別符號,通常稱為“間隔 ID”,可以傳遞給 clearInterval() 以停止指定函式的重複執行。

在相同的全域性環境中(例如,特定的視窗或 worker),間隔 ID 保證是唯一的,只要原始計時器仍在活動,就不會被用於任何新的間隔計時器。但是,不同的全域性環境維護著它們自己的獨立間隔 ID 池。

請注意,setInterval()setTimeout() 共享相同的 ID 池,並且 clearInterval()clearTimeout() 在技術上可以互換使用。但是,為了清晰起見,在維護程式碼時,您應該儘量始終匹配它們以避免混淆。

注意: delay 引數會被轉換為一個有符號 32 位整數。由於它在 IDL 中被指定為有符號整數,這實際上將 delay 限制為 2147483647 毫秒,大約 24.8 天。

示例

請參閱 setInterval() 以獲取示例。

規範

規範
HTML
# dom-setinterval-dev

瀏覽器相容性

另見