Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JavaScript .then() (https://javascript.ru/forum/misc/30194-javascript-then.html)

vadim5june 28.07.2012 23:51

Цитата:

Сообщение от LaNaite (Сообщение 192526)
Ох, жесть))

Это просто для примера ссылка-к Вам непосредственно отношение не имеет-у Вас нельзя повидимому задать синхронный способ выполнения(смотрите инструкцию к функции findPlacemarkOnMap)
Поэтому с аяксом не разбирайтесь
У вас есть какая то функция куда Вы хотите передать результат callback-так сделайте callback -ом всю вашу функцию

LaNaite 28.07.2012 23:53

т.е. если я обращаюсь к запросу js из стороннего приложения, то получить его результат (на сторону приложения) - не получится?

LaNaite 28.07.2012 23:55

не могу. обрабатываться результат должен не в js, а в стороннем приложении (1с)

melky 28.07.2012 23:59

Цитата:

Сообщение от LaNaite (Сообщение 192536)
не могу. обрабатываться результат должен не в js, а в стороннем приложении (1с)

если нельзя отсрочить обработку результата - то низзя.

LaNaite 29.07.2012 00:01

отсрочить - эт как?)

vadim5june 29.07.2012 00:03

Цитата:

Сообщение от LaNaite (Сообщение 192536)
не могу. обрабатываться результат должен не в js, а в стороннем приложении (1с)

Нет синхронно не получится потому что на запрос время надо
Если можно так чтобы сначала обратится к геолокации записать результат куда то а потом уже передать в 1С
или периодически обращайтесь к геолокации каждую секунду результат записывайте в переменную а 1С когда обратится возьмет последнее значение

LaNaite 29.07.2012 00:18

Можно.
Например в глобальную переменную?
Я сейчас сделала так, что в callback функции происходит изменение глобальной переменной на результат, который она получила в findPlacemarkOnMap(). И я создала новую функцию, которая возвращает глобальную переменную:

function getGlobalResult(){

alert(returnResult);
//return returnResult;
}

Из 1С я поочереди вызываю сначала: findPlacemarkOnMap, затем getGlobalResult. Все равно Undefined

Aetae 29.07.2012 00:33

Попробую и я обьяснить почему так, т.е. суть асинхронности.
Выполняется код,
выполняется,
выполняется,
выполняется по порядку,
тут раз - и асинхроннный запрос запросил что-то от сервера,
сервер думает, а код выполняется дальше по порядку,
сервер думает, а код выполняется дальше,
сервер думает, а код выполняется дальше,
внезапно сервер законцил думать и вернул результат, в связи с чем была вызвана функция callback прямо во время выполнения какой-то другой части кода.
выпоненен callback(),
код выполняется дальше,
код выполняется дальше...

Или даже так(в вашем случае):
Выполняется код,
выполняется,
выполняется,
выполняется по порядку,
тут раз - и асинхроннный запрос запросил что-то от сервера,
сервер думает, а код выполняется дальше по порядку,
сервер думает, а оставшийся код уже полностью выполнен и ничего не происходиит,
сервер думает, ничего более не происходиит,
внезапно сервер законцил думать и вернул результат, в связи с чем была вызвана функция callback.
выпоненен callback(),
ничего более не происходиит...


Т.о. вы вызываете функцию когда сервер ещё не закончил думать. Естесно переменная ещё undefined.
В яндексе работают умные ребята, там должны быть функции для таких случаев. Накрайняк обращаться к переменной с интервалом до тех пор пока там не появитсчся значение.

LaNaite 29.07.2012 00:36

Спасибо. Я это понимаю. Сейчас пытаюсь понять - есть ли какие-то методы - позволяющие реализовать мою задачу. Если бы я писала код для интернет-сервиса - проблем бы не было. Но я использую передачу параметров.

vadim5june 29.07.2012 00:46

Цитата:

Сообщение от LaNaite (Сообщение 192566)
. Но я использую передачу параметров.

а adress Вы откуда получаете-из 1С?
и Вам нужен результат геолокаци с этим адресом
нужно общение с 1С тоже асинхронным сделать-сначала он передат Вам
adress в одну функцию а потом когда у Вас будет результат Вы передадите в 1С его


Часовой пояс GMT +3, время: 00:56.