Непонятки с областью видимости переменной
Есть вот такой код, на 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, время: 00:05. |