遞迴 setTimeout
要無限期地重複一個函式,可以遞迴呼叫 setTimeout
:
function repeatingFunc() {
console.log("It's been 5 seconds. Execute the function again.");
setTimeout(repeatingFunc, 5000);
}
setTimeout(repeatingFunc, 5000);
與 setInterval
不同,這確保即使函式的執行時間長於指定的延遲,函式也會執行。但是,它不保證函式執行之間的定期間隔。此行為也會有所不同,因為遞迴呼叫 setTimeout
之前的異常將阻止它再次重複,而 setInterval
將無限期地重複,而不管異常。