Was ist der Unterschied zwischen $ evalAsync und $ timeout in AngularJS?

Ich benutze AngularJS jetzt schon eine Weile und habe festgestellt, dass ab und zu $ timeout verwendet werden muss (scheint normalerweise ein jQuery-Plugin zu initiieren). Vor kurzem habe ich versucht, den Digest-Zyklus besser und gründlicher zu verstehen, und bin auf die Funktion $ evalAsync...