Непонятки с областью видимости переменной
Есть вот такой код, на jQuery:
function loadModelList(vendor_id) { var model; $.post("/search/get_models", {vendor_id: vendor_id}, function(data) { $(data).each(function() { if (params_array['model'] != undefined && params_array['model'] == this.id) { model = this.model_name; } }); }, 'json'); alert(model); } В самой глубине этого кода должна инициализироваться пременная model. Однако ничего подобного не происходит и её значение так и остаётся undefined. Почему ?? И как сделать так, чтобы я мог получить то что мне надо во внешней области видимости ? |
Использовать синхронный запрос.
|
Что значит синхронный ? И почему переменная то не инициализируется ?
|
Она инициализируется, но позже.
|
А почему позже ? Разве асинхронность запроса влияет на порядок выполнения js-кода ? Запрос то может быть и асинхронный (хотя это всего лишь название, никакого смысла в этой асинхронности кажется нет, кроме того, что текущая страница браузера не перегружается), но код то последовательно должен выполняться..?
|
zeleniy, alert вызывается сразу, а переменной присваивается значение после запроса.
|
Цитата:
|
Да, сделал запрос синхронным и всё заработало. Почитал про синхронность/асинхронность http://xmlhttprequest.ru/#use. Спасибо.
|
Часовой пояс GMT +3, время: 19:03. |