das schrittweise beobachten brachte mich eben auf die olle idee das gaze funktioniere nicht wegen der async
wobei ich sagen muss - die o.g. funktion habe ich so ncih tbenutzt, und nur zwecks beispiel gebracht - uU habe ich im original zufällig die richtige reihenfolge gehabt
Wahrscheinlich.
Ich habe deinen Code in ein lauffähiges Beispiel umgesetzt:
function f1() { // so wie du es gezeigt hast
fb(x);
var x = function() {alert('Hallo');};
}
function f2() { // so geht's
var x = function() {alert('Hallo');};
fb(x);
}
function fb(c) {c();}
try {f1();} catch(e) {alert(e);}
try {f2();} catch(e) {alert(e);}
Der erste Aufruf erzeugt einen Fehler, der zweite sagt Hallo.
Struppi.