- Автор темы
- #1
Есть функция "default_myPlacemark", которая проверяет поле на наличие координат. Если нет, то берет адрес и получает координаты. Далее записывает их в поле и должна вернуть после этого true.
Эта функция срабатывает по нажатию на ссылку, вызывается так: if ( ! default_myPlacemark() ) {...}
* Получается некая валидация...
Вот она то и возвращает неверное значение.
Есть переменная err_val. Она задается в начале функции, как false.
И эта функция делает return err_val; раньше, чем выполнятся все действия внутри функции, не успев присвоить переменной err_val = true.
В функции есть if-else. Пробовал return ставить не в конце функции, а в конце if и else. Т.е. в if делаю return false, в else делаю return true. Один фиг - возвращается то значение, которое было укзано до функции.
Если вызываю функция так:
Пишет undefined, хотя функция выполняет свои действия...
Надеюсь понятно изложил?
Почему return срабатывает раньше? вроде как не должно же быть так... уже 3-е сутки голову гружу... кода кучу переписать успел...
P.s. функцию не выкладываю, т.к. очень большая, примерно 200 строк
-------------------
Проблема нашлась - ассинхронный вызов ymaps.geocode()
Может кто-нинбудь знает, как переделать в синхронный или еще как-нибудь, чтобы функция дожидалась результата?
Эта функция срабатывает по нажатию на ссылку, вызывается так: if ( ! default_myPlacemark() ) {...}
* Получается некая валидация...
Вот она то и возвращает неверное значение.
Есть переменная err_val. Она задается в начале функции, как false.
И эта функция делает return err_val; раньше, чем выполнятся все действия внутри функции, не успев присвоить переменной err_val = true.
В функции есть if-else. Пробовал return ставить не в конце функции, а в конце if и else. Т.е. в if делаю return false, в else делаю return true. Один фиг - возвращается то значение, которое было укзано до функции.
Если вызываю функция так:
Код:
var res_fun = default_myPlacemark();
if ( ! res_fun ){
-код-
console.log( res_fun );
}
Пишет undefined, хотя функция выполняет свои действия...
Надеюсь понятно изложил?
Почему return срабатывает раньше? вроде как не должно же быть так... уже 3-е сутки голову гружу... кода кучу переписать успел...
P.s. функцию не выкладываю, т.к. очень большая, примерно 200 строк
-------------------
Проблема нашлась - ассинхронный вызов ymaps.geocode()
Может кто-нинбудь знает, как переделать в синхронный или еще как-нибудь, чтобы функция дожидалась результата?
Последнее редактирование: