| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Область видимости переменных |
| Автор: SneG0K 24.5.2010, 18:10 | ||
Почему result не меняется на 2??? Она же в глобальной области видимости!!! Битый час уже долблюсь. Спасайте. Firefox 3.6.3 Ubuntu 10.04 |
| Автор: Amphiluke 24.5.2010, 18:29 |
| А почему проверка выполняется, вне функции onSuccess? (т.е. не дожидаясь ответа от сервера) |
| Автор: SneG0K 24.5.2010, 18:38 |
| Внутри функции проверка выполнялась и там все хорошо. Т.е. это из-за задержек сервера? Добавлено через 10 секунд Стоп. Как это решить? Добавлено через 3 минуты и 10 секунд Моя задача: вызвать опр. API, получить результат, вернуть его. Добавлено через 3 минуты и 50 секунд var result = callAPI('someapi', params); Т.е. в result должен быть ответ. |
| Автор: Amphiluke 24.5.2010, 18:48 |
| Ну вы же создаете асинхронный запрос. После возврата управления функцией callAPI запрос еще не будет до конца обработан, и соответственно не будет еще возвращен ответ. Только после срабатывания callback-функции onSuccess будет изменена переменная result... Если асинхронность непринципиальна для вас, попробуйте синхронный запрос. |
| Автор: ex3c 24.5.2010, 18:49 |
| AJAX — Asynchronous Javascript and XML |
| Автор: Amphiluke 24.5.2010, 18:52 |
| Можно сделать так, чтобы функция callAPI сама принимала в качестве параметра указатель на callback-функцию, определенную пользователем вашего API. И тогда из функции onSuccess уже можно будет вызвать ту callback-функцию. |