2012-10-13 37 views
1

可能重複:
JavaScript - Is it possible to view all currently scheduled timeouts?JavaScript中用window.setTimeout或window.setInterval調用函數的列表?

有什麼辦法由window.setTimeout()window.setInterval()訪問的(計劃進行評估或字符串),這些計劃被稱爲所有功能列表?

返回與最初調用這些函數時返回的對象數組相同的對象數組。

+0

你可以更具體。無法理解你的問題。根據我的理解,您可以隨時查看API來查找參數。等等。 –

+0

我想了解一個JS模塊(我沒寫)是如何工作的。只是想研究它的行爲。 –

回答

1

號的WindowTimers接口沒有提供任何方法來獲取的當前排隊任務的列表:

[Supplemental, NoInterfaceObject] 
interface WindowTimers { 
    long setTimeout(in any handler, in optional any timeout, in any... args); 
    void clearTimeout(in long handle); 
    long setInterval(in any handler, in optional any timeout, in any... args); 
    void clearInterval(in long handle); 
}; 
Window implements WindowTimers;

你必須編寫自己的代碼,以便跟蹤處理程序。

0

我不認爲你可以,除非你寫的setTimeout和setInterval的包裝和實施內部稱他們和推動功能的陣列

0

我不能回答你的問題(雖然我不認爲有一種方法),但取決於你想要做什麼,你可以編寫一個包裝函數,然後將其添加到一個數組,你可以控制或觸發一個事件,你可以放置一個監聽器,或者...

當然,這隻能讓你控制你爲自己設置了一個定時器的功能。

var stack = new Array(); 

window.mySetTimeout = function (func, delay) { 
    stack.push(func); 
    window.setTimeout(func, delay); 
} 

function doSomething() { 
    return true; 
} 

window.mySetTimeout(doSomething, 500); 
console.log(stack); 

編輯:我想我有點慢。