Używam AngularJS od jakiegoś czasu i znalazłem potrzebę używania $timeout co jakiś czas (Wydaje się, że zazwyczaj należy zainicjować wtyczkę jQuery).
Niedawno próbowałem uzyskać lepsze i bardziej dogłębne zrozumienie cyklu trawienia, a ja natknąłem się na funkcję $evalAsync.
Wygląda na to, że funkcja daje podobne wyniki do $timeout
, tylko nie zwlekaj. Za każdym razem, gdy używałem $timeout
, było to z opóźnieniem wynoszącym 0, więc teraz zastanawiam się, czy powinienem był zamiast tego użyć $evalAsync
.
Czy są jakieś zasadnicze różnice między tymi dwoma? W jakich przypadkach używałbyś jednego z drugim? Chciałbym mieć lepsze wyczucie, kiedy go użyć.
Dziękuję za wyjaśnienie. Jednej rzeczy nie jestem pewien, czy rozumiem. Dlaczego ma to wpływ na to, że dzwonisz do $ evalAsync z kontrolera lub dyrektywy? AsyncQueue nie wie, czy został zarejestrowany z kontrolera lub dyrektywy, po prostu umieszcza go w kolejce na bieżącym zasięgu. Czy ma to związek, gdy rzeczy działają w kontrolerze a kontrolerze? Po prostu chcę zrozumieć tę część. – dnc253
@ dnc253, Nie spojrzałem na kod Angular, więc nie znam odpowiedzi na twoje (dobre) pytanie. Mam nadzieję, że ktoś inny może komentować. –
"z dyrektywy" oznacza "z funkcji łączenia dyrektywy"? Czy to prawda, że zachowanie jest wykonywane przy użyciu metody linku lub kontrolera dyrektywy? – SimplGy