Jak wspomnieli inni, setTimeout
nie odradza się wątku. Jeśli chcesz otrzymać listę wszystkich identyfikatorów Timeout (dzięki czemu można je anulować, na przykład), a następnie zobaczyć poniżej:
Nie sądzę, można uzyskać listę wszystkich identyfikatorów limitu czasu bez zmiany kodu podczas nazywają się. setTimeout
zwraca identyfikator - a jeśli go zignorujesz, oznacza to, że jest on niedostępny dla skryptu JavaScript. (Oczywiście interpreter ma do niego dostępu, ale kod nie robi.)
Jeśli można zmienić kod można to zrobić:
var timeoutId = [];
timeoutId.push(setTimeout(myfunc, 100));
... Upewniwszy się, że timeoutId
jest zadeklarowana w zakresie globalnym (być może za pomocą window.timeoutId = []
).
Tuż przy mojej głowie, ale reimplement setTimeout
trzeba by zrobić coś takiego:
var oldSetTimeout = setTimeout;
setTimeout = function (func, delay) {
timeoutId.push(oldSetTimeout(func, delay));
}
to nie jest badana, ale daje punkt wyjścia. Dobry pomysł, molf!
Edytuj:aularon's answer podaje o wiele dokładniejszą implementację powyższego pomysłu.
Mike, czy możesz dodać więcej szczegółów? –
Czy chcesz wyświetlić tylko listę identyfikatorów przekroczenia limitu czasu? javascript nie używa wątków ... – brad