La dimensione massima dello stack di chiamate ha superato la funzione ricorsiva di SetTimeout (Javascript)

Ho una funzione ricorsiva di SetTimeout che fa clic su un filtro sulla mia pagina dopo che i filtri sono stati caricati (vengono caricati tramite Ajax, quindi non disponibili immediatamente al caricamento della pagina).

$scope.clickFilter = function () { var filter = $('.filter-item') .find('input[value="' + $scope.activeFilter + '"]'); if (filter.length < 1) { setTimeout($scope.clickFilter(), 1000); } else { $(filter).trigger("click"); } } 

Tuttavia, quando i filtri impiegano molto tempo a caricarsi, viene visualizzato “Uncaught RangeError: superata la dimensione massima dello stack delle chiamate (…)”

Come posso evitare questo e assicurarmi che funzioni fino al completamento?