Видимость переменной при асинхронном запросе. Как передать и получить значение? 
		
		
		
		Не силен в Аяксе. 
	Понял что дело в callback, но как реализовать не знаю, подскажите. Имеем код (подключена библиотека работы с Яндекс Картами) 
var coordinats;
var myGeocoder = ymaps.geocode("Москва");
myGeocoder.then(
    function (res) {
        coordinats = res.geoObjects.get(0).geometry.getCoordinates();
        alert('Координаты объекта :' + coordinats); // здесь всё верно, на экран получаю координату
    }  
);
// Как за пределами фунцции получить доступ к переменной coordinats ?
// Чтобы вызвать так?
alert('И тут Координаты объекта :' + coordinats);
Спасибо!  | 
	
		
 Вас где штампуют )) 
	Не совру, если скажу что твой вопрос при мне задается где-то 15й раз :D  | 
	
		
 Чувак, запрос на сервер занимает некоторое время. 
	Гугли метод, который обращается в будущее и вытягивает оттуда значение переменной.  | 
	
		
 Это как отправить ребенка за молоком, поймать его на пороге, когда он только собрался выйти, и трясти, требуя молоко )) 
	Ну а че. За молоком отправил? Отправил. Где молоко? Не успел еще сходить? А не волнует ))  | 
	
		
 Цитата: 
	
 Но тыкни пальцем где есть ответ, коли такой шустрый. Дай ссылку, а лучше поправь код. Я искал, честно!  | 
	
		
 Я же объяснил - два эти участка кода разнесены по времени.  
	Ты хотя бы на порядок всплытия алертов обрати внимание. А ведь тот алерт, который работает, всплывает сразу как только у тебя стали известны координаты, то есть до этого момента нет никаких координат. Вывод - юзай координаты именно в том месте. Если вопрос в организации кода, то пожалуйста: вынеси код в отдельную функцию, но вызывай ее именно из then(), в callback-функции.  | 
	
		
 Скорректировал код. 
	Но всё равно не так как надо. Прошу помочь. 
var coords;
var x;
var y;
function init(callback) {   
 
var myGeocoder = ymaps.geocode(city);
myGeocoder.then(
    function (res) {
        coords = res.geoObjects.get(0).geometry.getCoordinates();
        x = coords[0]; // это значение x надо передать дальше
        y = coords[1]; // это значение y надо передать дальше
		
		// Метка 1.
		alert("Коорд х = " + x + "Коорд y = " + y); //  <-- тут сейчас получаем верные желаемые значения
        callback(x,y);
    }
    
);
	// Метка 2.
   x = "59.76";
   y = "30.64";
} 
ymaps.ready(function () {
	
	init(function() {
		alert("Коорд х = " + x + "Коорд y = " + y); //  <-- тут сейчас ТАКЖЕ получаем верные желаемые значения из Метки 1
	});
    var myMap = window.map = new ymaps.Map('YMapsID', {
            center: [x,y], // <- сюда надо передать наши значения x и y из Метки 1. Но мы получаем значения из Метки 2. Что исправить?
            zoom: 9,
            behaviors: ['default', 'scrollZoom']
        });
});
 | 
	
		
 И опять ты пытаешься использовать значения, которые еще не успел получить. Ты можешь использовать только те значения, которые у тебя есть на данный момент. Если ты не можешь создать ymaps.Map не получив какие-то значения, то ... гм.. ты не можешь создать ymaps.Map не получив их. Странно, получилась очевидная закономерность. Только почему она не очевидна тебе? 
	 | 
	
		
 Ты понимаешь термин "асинхронный"? 
	 | 
	
		
 Цитата: 
	
  | 
| Часовой пояс GMT +3, время: 13:23. |