Parlare del vago non e' sempre agevole... ignoro la natura del "risultato" che cerchi e inoltre e' oscuro il perche' imposti un ciclo a 1000 per poi "interromperlo" prima :master:

Ora, se la funzione e' sufficientemente "veloce" ed il ciclo senza troppe iterazioni, tutto il discorso si fa ulteriormante fumoso.... difficile che un evento esterno si verifichi nel frattempo per poter interrompere la funzione... se invece parli del raggiungimento di un valore all'interno della funzione stesso tutto il discorso e', all'atto pratico, inutile, in quanto tutto si riduce a impostare meglio il ciclo (magari usi una do ... while ) ed i controlli.

Nel caso invece di un ciclo gestito con setInterval() che richiama la funzione, una possibile soluzione puo' essere:
codice:
 
function tua() {
  if(condizione_o_variabile_esterna) {
    // esegui istruzioni
  } else {
    // esegui altre istruzioni
  }
}
Ma tutto rimane sul vago e puramente didattico, dato che il problema reale rimane sconosciuto.

ciao