| 
	
	
		
		
		
		
		 Попробую и я обьяснить почему так, т.е. суть асинхронности. 
Выполняется код, 
выполняется, 
выполняется, 
выполняется по порядку, 
тут раз - и асинхроннный запрос запросил что-то от сервера, 
сервер думает, а код выполняется дальше по порядку, 
сервер думает, а код выполняется дальше, 
сервер думает, а код выполняется дальше, 
внезапно сервер законцил думать и вернул результат, в связи с чем была вызвана функция callback прямо во время выполнения какой-то другой части кода. 
выпоненен callback(), 
код выполняется дальше, 
код выполняется дальше... 
 
Или даже так(в вашем случае): 
Выполняется код, 
выполняется, 
выполняется, 
выполняется по порядку, 
тут раз - и асинхроннный запрос запросил что-то от сервера, 
сервер думает, а код выполняется дальше по порядку, 
сервер думает, а оставшийся код уже полностью выполнен и ничего не происходиит, 
сервер думает, ничего более не происходиит, 
внезапно сервер законцил думать и вернул результат, в связи с чем была вызвана функция callback. 
выпоненен callback(), 
ничего более не происходиит... 
 
 
Т.о. вы вызываете функцию когда сервер ещё не закончил думать. Естесно переменная ещё undefined. 
В яндексе работают умные ребята, там должны быть функции для таких случаев. Накрайняк обращаться к переменной с интервалом до тех пор пока там не появитсчся значение. 
		
	
		
		
		
		
		
			
				__________________ 
				29375, 35 
 
			 
		
		
		
		
		
						  
				
				Последний раз редактировалось Aetae, 29.07.2012 в 00:43.
				
				
			
		
		
	
		
		
	
	
	 |