遞迴 setTimeout

要無限期地重複一個函式,可以遞迴呼叫 setTimeout

function repeatingFunc() {
    console.log("It's been 5 seconds. Execute the function again.");
    setTimeout(repeatingFunc, 5000);
}

setTimeout(repeatingFunc, 5000);

setInterval 不同,這確保即使函式的執行時間長於指定的延遲,函式也會執行。但是,它不保證函式執行之間的定期間隔。此行為也會有所不同,因為遞迴呼叫 setTimeout 之前的異常將阻止它再次重複,而 setInterval 將無限期地重複,而不管異常。