1

重複の可能性:
JavaScript - 現在スケジュールされているすべてのタイムアウトを表示できますか?

または によって呼び出される予定のすべての関数 (または評価される予定の文字列) のリストにアクセスする方法はありますwindow.setTimeout()window.setInterval()?

これらの関数が最初に呼び出されたときに返されたものと同じオブジェクトの配列を返すもの。

4

3 に答える 3

1

いいえ。WindowTimersインターフェイスには、現在キューに入れられているタスクのリストを取得するメソッドはありません。

[補足、NoInterfaceObject]
インターフェイス WindowTimers {
  long setTimeout(任意のハンドラー内、オプションの任意のタイムアウト内、任意の...引数内);
  void clearTimeout(長いハンドル);
  long setInterval(任意のハンドラー、オプションの任意のタイムアウト、任意の... args);
  void clearInterval(長いハンドル);
};
Window は WindowTimers を実装します。

ハンドラーを追跡するには、独自のコードを作成する必要があります。

于 2012-10-13T09:33:06.117 に答える
0

setTimeout と setInterval のラッパーを作成し、それらを内部で呼び出して関数を配列にプッシュすることを実装すること以外はできないと思います

于 2012-10-13T09:33:36.490 に答える
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);

編集:私はそこで少し遅かったと思います。

于 2012-10-13T09:38:32.743 に答える