Qualcuno mi ha detto che quando si utilizza setTimeout
è necessario cancellarlo con clearTimeout
. Posso capire prima che scada il timeout, ma perché dopo? O è falso?Quando si usa setTimeout, è necessario cancellare Timeout?
risposta
Non è vero - non c'è nulla di male a cancellare un timeout dopo che è finito, ma non è necessario.
Per il specification:
Se la maniglia non si identifica una voce nell'elenco dei timer attivi dell'oggetto WindowOrWorkerGlobalScope sul quale è stato invocato [clearTimeout], il metodo non fa nulla.
In altre parole, è un no-op; non succede niente e nessun errore verrà lanciato.
Nessun motivo per cancellarlo dopo che è stato completato. Il tuo amico potrebbe essere stato confuso con setInterval
.
clearTimeout
è necessario solo per annullare un timeout. Dopo il timeout, può essere lasciato in pace. clearInterval
è molto più tipicamente necessario per impedire che continui indefinitamente.
No, setTimeout
si interrompe dopo 1 chiamata. Tuttavia, per interrompere setInterval
, è necessario utilizzare clearInterval
. Se si crea un ciclo infinito di setTimeout
, è possibile utilizzare clearTimeout
.
In realtà non è necessario utilizzare clearTimeout
, lo si utilizza solo se si desidera annullare il timeout già impostato prima che si verifichi.
Di solito è più pratico usare clearInterval
con setInterval
perché setInterval
di solito va a tempo indeterminato.
- 1. Usa variabile come orario in setInterval/setTimeout
- 2. Quando è necessario NSCopying?
- 3. Run setTimeout solo quando scheda è attiva
- 4. Come si usa getch dalle maledizioni senza cancellare lo schermo?
- 5. Quando si usa l'istruzione Using?
- 6. Come si usa questo plugin jQuery per cancellare un cookie?
- 7. Quando si usa "apply" e quando "funcall"?
- 8. Perché il cinese è confuso quando si usa webpy ma è normale quando si utilizza MySQLdb?
- 9. HttpClient si blocca quando è impostato il timeout (Windows Phone)
- 10. Quando è necessario utilizzare System.AppContext?
- 11. È necessario ignorare il certificato quando si utilizza restTemplate
- 12. È statico necessario quando si dichiarano glob cost?
- 13. È necessario jQuery quando si utilizza Twitter Bootstrap con Angular.js?
- 14. Perché è necessario -L quando si utilizza -rpath?
- 15. Perché è necessario aggiungere parentesi alle operazioni + - quando si concatenano?
- 16. Concatenamento concatenato quando si utilizza $ timeout
- 17. Qual è il timeout predefinito nel metodo setTimeout() dell'oggetto Window JavaScript?
- 18. UINavigationbar title è troncato quando si usa titleTextAttributes
- 19. Qual è l'accordo su https quando si usa lxml?
- 20. setTimeout (divertimento) con un singolo argomento? (Timeout non specificato)
- 21. Cosa fa $ quando si usa JQuery?
- 22. Cosa succede quando si usa make_shared
- 23. uscita imprevisto quando si usa fseek
- 24. Quando è possibile cancellare un ramo locale?
- 25. quando è necessario il modello dell'adattatore?
- 26. undefined compensato quando si usa PHP explode()
- 27. L'allineamento dell'immagine quando si usa resizeMode = contiene
- 28. Soppressione " '...' is deprecated" quando si usa respondsToSelector
- 29. Cosa sta succedendo quando si usa DISTINCT?
- 30. Quando è necessario utilizzare _.bindAll() in Backbone.js?