Клуб API Карт

вопрос по геокодеру

varzanov62
1 мая 2012, 23:42

код примерно такой

ymaps.geocode(address,{results: 1}).then (function(res){

...

}

 

как сделать чтобы последующий код выполнялся только после окончания работы геокодера

сейчас он выполняется асинхронно не дожидвясь окончания процесса гаокодирования

6 комментариев
Подписаться на комментарии к посту

Не понял вопроса.

Код, написанный в then(function (res) { ... будет выполнен после окончания работы геокодера.

почитайте что-нибудь про интерфейс Promises

Вы можете выполнить ваш код внутри 

function(res){

... // здесь

}

Вы можете написать еще одну цепочку then

 

ymaps.geocode(address,{results: 1})

.then(function(res){

...

return 'a';

})

.then(function(res) {

res === 'a'; // в этой функции в res будет то что возвращает предыдущая и выполнится она после нее

});

тогда еще вопрос а может ли функция ymaps.geokode() выполняться синхронно

и еще если можно пример с комментариями по использованию интерфейса Promises

 

функция geocode ни при каких изощерениях не может быть выполнена синхронно.

Вам прийдется все нужно оборачивать в .then и ждать окончание работы.

спасибо

 

 

и еще если можно пример с комментариями по использованию интерфейса Promises

 

PromisesA - стандартный CommonJS интерфейс и на него есть спецификация

Примеры в интернете, думаю, тоже не сложно найти