У меня есть такая функция:AngularJS: как вызвать рекурсивную функцию с задержкой?
$scope.getContactsByScroll = function() {
$scope.pageN = $scope.pageN + 1;
if (!$scope.allDataIsLoaded){
fetchMyDataService.getContactsByScrollService($scope.pageN).then(function(response) {
if (response.length === 0){
$scope.allDataIsLoaded = true;
}
else if (response.length !== 0 && !$scope.allDataIsLoaded){
angular.forEach(response, function(el) {
$scope.contacts.push(el);
});
//$timeout(function() {
$scope.getContactsByScroll();
//}, 2000);
}
}).catch(function() {
$scope.allDataIsLoaded = true;
});
}
};
но называют себя несколько раз, даже, если $scope.allDataIsLoaded
является false
, когда я установил timeout
: все работает как шарм. Но я не думаю, что это хорошее решение. Как я могу отложить свою функцию без тайм-аута?
Почему вы думаете, $ таймаут не является хорошим решением? Мне кажется самым логичным решением для меня. –
Тайм-аут - довольно хорошее решение ... – Neron