Ho un oggetto activeX referenziato con la variabile map.

Se volessi lanciare il suo evento map.zoomScale, per non incorrere in errore devo prima verificare se una proprietà, Busy, è vera o falsa.

Ho pensato di ricorrere a setTimeout per rilanciare la funzione, e funziona.

Voglio però che setTimeout funzioni al massimo per 10 volte.
Per fare questo ho utilizzato una variabile contatore n, all'esterno della funzione.

Chiedo se non si possa migliorare facendo a meno di variabili esterne e demandando tutto alla funzione.

Ecco il mio codice:
codice:
var n = 0;
function _zoomScale(lat, lon, scale)
{
	
	n++;
	if(n > 10) {alert("troppe iterazioni"); return;}
	if(map.Busy) window.setTimeout(function(){_zoomScale(lat, lon, scale)}, 1);
	else {map.zoomScale(lat, lon, scale);alert(n);n=0;}
}
e la richiamo con:
_zoomScale(lat, lon, scale);