Подтвердить что ты не робот

Angular Тайм-аут JS $против $interval

Какая разница? Когда я должен использовать это? Я новичок в Angular, и они очень похожи на меня. Я бы предпочел следовать лучшим практикам с самого начала.

4b9b3361

Ответ 1

$interval повторно выполняет обратный вызов, а $timeout просто задерживает выполнение обратного вызова (не повторяется). Итак, нет, они не то же самое. Кроме того, следует отметить, что оба они являются обертками для window.setInterval и window.setTimeout соответственно.

Я также хотел бы рекомендовать прочитать эту замечательную статью, написанную Джоном Ресигом о том, как работают таймеры Javascript.

Ответ 2

Здесь некоторая информация, извлеченная из ответ djvirgen на аналогичный вопрос Reddit:

Вы всегда должны использовать $timeout в приложениях Angular. Вот почему:

  • Это инъекция, облегчающая тестирование с помощью ngMock.
  • Он выполняет дайджест, чтобы убедиться, что ваш просмотр обновлен.
  • Это возможно (это также обещание).

Однако, если вы не хотите, чтобы дайджест запускался, вы можете просто передать false в качестве третьего аргумента.

Я бы предположил, что $interval имеет схожие преимущества.