Comme d'autres l'ont mentionné, setTimeout
ne génère pas de thread. Si vous voulez une liste de tous les temps mort ids (afin que vous puissiez les annuler, par exemple), puis voir ci-dessous:
Je ne pense pas que vous pouvez obtenir une liste de tous les ids délai d'attente sans changer le code lorsque elles sont appelées. setTimeout
renvoie un ID-et si vous l'ignorez, il est inaccessible à votre JavaScript. (Il est évident que l'interprète a accès, mais votre code ne fonctionne pas.)
Si vous pouviez changer le code que vous pouvez faire:
var timeoutId = [];
timeoutId.push(setTimeout(myfunc, 100));
... Faire en sorte que timeoutId
est déclarée dans une portée globale (peut-être en utilisant window.timeoutId = []
).
Situé juste à côté du haut de ma tête, mais réimplémenter setTimeout
vous auriez à faire quelque chose comme ceci:
var oldSetTimeout = setTimeout;
setTimeout = function (func, delay) {
timeoutId.push(oldSetTimeout(func, delay));
}
Ce n'est pas testé, mais il vous donne un point de départ. Bonne idée, molf!
Edit:aularon's answer donne une mise en œuvre beaucoup plus approfondie de l'idée ci-dessus.
Mike, pouvez-vous s'il vous plaît s'il vous plaît ajouter plus de détails? –
voulez-vous juste une liste d'ID de délai d'attente en cours d'exécution? javascript n'utilise pas de threads ... – brad