Tach!
- wie kann man eine Funktion mit einem Event abbrechen wenn sie noch im gange ist
- bzw. durch ein Event eine Funktion unterbrechen und ene andere Funktion starten?
ich vermute mit Try-Catch-Block?
try-catch ist zur Behandlung unvorhergesehener Zustände da, nicht zur allgemeinen Ablaufsteuerung. In den Ablauf einer Funktion kann man meines Wissens nicht von außen eingreifen. Die ganze Sache hängt auch davon ab, wie Multitasking in Javascript realisiert ist. Wenn die Events erst dann feuern, wenn deine Funktion fertig ist, geht keine Unterbrechung. Den Punkt müssten mal unsere Javascript-Experten beisteuern. Jedenfalls, wenn das Event nebenbei feuert, kannst du, meine ich, nur ein Flag setzen, welches du in der Funktion in regelmäßigen Abständen abfragst und daraufhin den Abbruch einleiten (zum Beispiel eine Schleife verlassen). Hier kann dann aber aus praktischen Gründen ein try-catch eingesetzt werden, wenn der Code zu umfangreich ist, und eine Steuerung mit if-else zu komplex wird.
Wie greift man nun auf das Flag zu? Die einfachste und unschönste Art ist eine globale Variable. Besser ist es, die Funktion als Objekt zu schreiben mit dem Flag als Eigenschaft oder einer von außen aufzurufenden Methode, die das Flag im Inneren setzt.
Und die andere Funktion starten - vielleicht hinter dem try-catch bzw. if-else oder im Eventhandler.
Ich war noch nicht in der Notwendigkeit, sowas machen zu müssen. Meine Überlegungen sind deswegen teilweise theoretischer Natur und ohne die Erfahrung dessen, was realisierbar ist.
dedlfix.