Приведённый код упрощён, чтобы не писать лишнего.  Есть переменная 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();
}