Мне нужна функция, которая ждет, пока не появится переменная.Ожидание, пока переменная существует с typeof, вызывает бесконечный цикл
function wait(variable, callback) {
if (typeof variable !== "undefined")
callback();
else
setTimeout(function() {
wait(variable, callback);
}, 0)
}
Вызов этой функции с приведенным ниже примером кода вызывает бесконечный цикл.
var a;
wait(a, function(){console.log('success')});
setTimeout(function(){a=1}, 1000)
Почему?
Переменные передаются по значению, а не по ссылке, поэтому вы просто передаете текущее неопределенное значение в свой 'setTimeout'. – Barmar
Вы передаете значение 'a', которое всегда будет' undefined' – haim770