@tehnazavr

Почему переменная smth недоступна?

Приведённый код упрощён, чтобы не писать лишнего. Есть переменная smth, которая в одной функции доступна нормально, а в другой - она почему-то underfined, и я не понимаю почему. Из-за чего это может быть? Где я косячу ?

var smth;

function func1(){
	let x = new XMLHttpRequest();
	x.open("GET", url)
	x.send();
	x.onreadystatechange = function (){
		if (x.readyState == 4){
			for (let j=0; j<5;j++){
				func2();
				console.log(smth)  //Здесь smth - underfind
			}
		}
	}
}

function func2(){
	let request = new XMLHttpRequest();
	request.open("GET", url)
	request.send();
	request.onreadystatechange = function (){
		if (request.readyState == 4){
			smth = request.response;
			console.log(smth);  //Здесь smth доступна
		}
	}
}

for (let i=0; i<6; i++){
	func1();
}
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Потому что в func2 вы сами задали локальную переменную smth строчкой выше вывода её в консоль, а в func1 такой переменной нет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы