У меня есть интервал $, на котором выполняется ping-сервер, но иногда я хочу перейти к следующему обновлению сразу, поэтому я попробовал flush() с частотой обновления. Чтобы заставить следующий вызов. Это принесло бы дополнительную выгоду, если бы оба запроса не были в пути одновременно.
$interval.flush(refrsh_rate);
Когда это работает он эту ошибку
TypeError: $interval.flush is not a function
Существует не тонны документации на интервале, но это, кажется, в основном ссылаются из ngMock. Это касается модульного тестирования. Что я делаю не так? или есть лучший способ достичь этого? Заранее спасибо.
Прочитайте документацию по интервалу $ - [AngularJS $ Service API Reference - Отмена] (https://docs.angularjs.org/api/ng/service/$interval#cancel). Он включает пример о том, как остановить и перезапустить операцию '$ interval'. – georgeawg
Да, вы можете отменить его, но я хочу, чтобы интервал продолжал работать. Есть ли лучший способ сделать это, а затем отменить promis, запускающий функцию, и перезапустить ее? Я думаю, что это решение каким-либо образом приведет к условиям гонки. – JohnStone
Я бы доверял индивидуальным обещаниям от '$ timeout' отменить правильно. Поскольку '$ interval' не связывает обещания, я бы не стал доверять ему для того, чтобы выпустить XHR. – georgeawg