@babai19

В чём различия setTimeout и $timeout?

В чём отличие setTimeout от $timeout в angularjs?
  • Вопрос задан
  • 1193 просмотра
Решения вопроса 2
mudrick
@mudrick
Máximo progreso hemos alcanzado en minimo seso.
Самое главное это то, что $timeout обновляет скоуп (всякие данные на страничке изменятся), а простой setTimeout ничего не обновит в скоупе (данные на страничке как были так и будут старые).

Еще самое главное — $timeout ни в коем случае не является заменой setTimeout!!!

Если у вас функционал, который работает с данными скоупа и биндит переменные, то используйте $timeout, если же вам просто нужно что-то исполнять по таймауту (например, раз в секунду что-то делать, потом, через секунду, опять, и так далее, но не связанное с обновлением данных скоупа), то используйте setTimeout. Тобишь, $timeout запускает $digest-цикл и перерисовывает страничку — вот и представьте, если вы каждую секунду будете перерисовывать страничку.
Ответ написан
Комментировать
might
@might
javascript developer
$timeout запускает $digest и перерисовывает страницу после того как выполнятся все функции в текущем цикле.
Выполнится всё вне таймаута => обновление вьюхи => стаботает таймаут => вьюха обновится ещё раз
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Комментировать
zo0m
@zo0m
full stack developer
используйте $timeout
в setTimeout() придется еще хэндлить $scope.$apply() , для биндов
Ответ написан
Комментировать
TekVanDo
@TekVanDo
Javascript Developer
Если не в доводится в подробности $timeout выполняет функцию в через $digest
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы