2014-04-16 16 views
24

Qual è la differenza? Quando dovrei usare quale? Sono nuovo di Angular & sembrano molto simili a me. Preferirei seguire le migliori pratiche dall'inizio.

risposta

56

$interval esegue una richiamata ripetutamente, mentre $timeout ritarda semplicemente l'esecuzione di una richiamata (non si ripete). Quindi no, non sono la stessa cosa. Inoltre, si dovrebbe notare che entrambi sono wrapper per window.setInterval e window.setTimeout rispettivamente.

Vorrei anche raccomandare di leggere this great article scritto da John Resig su come funzionano i timer Javascript.

3

Ecco alcune informazioni estratte da djvirgen's risposta a a similar Reddit question:

Si dovrebbe sempre utilizzare $ timeout in applicazioni angolari. Ecco perché:

  • È iniettabile, rendendo più semplice il test con ngMock.
  • Esegue un digest per garantire che la visualizzazione sia aggiornata.
  • È possibile (è anche una promessa).

Tuttavia, se non si desidera eseguire un digest, è sufficiente passare falso come terzo argomento.

direi $ intervallo ha vantaggi simili.