Какая разница? Когда я должен использовать это? Я новичок в Angular, и они очень похожи на меня. Я бы предпочел следовать лучшим практикам с самого начала.
Angular Тайм-аут JS $против $interval
Ответ 1
$interval
повторно выполняет обратный вызов, а $timeout
просто задерживает выполнение обратного вызова (не повторяется). Итак, нет, они не то же самое. Кроме того, следует отметить, что оба они являются обертками для window.setInterval
и window.setTimeout
соответственно.
Я также хотел бы рекомендовать прочитать эту замечательную статью, написанную Джоном Ресигом о том, как работают таймеры Javascript.
Ответ 2
Здесь некоторая информация, извлеченная из ответ djvirgen на аналогичный вопрос Reddit:
Вы всегда должны использовать $timeout в приложениях Angular. Вот почему:
- Это инъекция, облегчающая тестирование с помощью ngMock.
- Он выполняет дайджест, чтобы убедиться, что ваш просмотр обновлен.
- Это возможно (это также обещание).
Однако, если вы не хотите, чтобы дайджест запускался, вы можете просто передать false в качестве третьего аргумента.
Я бы предположил, что $interval имеет схожие преимущества.