Ich brauche eine Funktion, die wartet, bis eine Variable entsteht.Wartet, bis eine Variable mit typeof existiert, verursacht eine Endlosschleife
function wait(variable, callback) {
if (typeof variable !== "undefined")
callback();
else
setTimeout(function() {
wait(variable, callback);
}, 0)
}
Der Aufruf dieser Funktion mit dem folgenden Beispielcode verursacht eine Endlosschleife.
var a;
wait(a, function(){console.log('success')});
setTimeout(function(){a=1}, 1000)
Warum?
Variablen werden nach Wert übergeben, nicht als Referenz, also übergeben Sie einfach den aktuellen undefinierten Wert in Ihrem 'setTimeout'. – Barmar
Sie übergeben den Wert von 'a', die immer' undefiniert' sein wird – haim770