return в ajax
Добрый день! Понимаю, что тема изъезжена вдоль и поперек, но не могу победить return в $.ajax
Делаю так (пытаюсь через область видимости): window.onload = function() { var callback = 0; var data2 = "data=bugoga"; $.ajax({ type: "POST", url: "./test.php", data: data2 }).done(function(data){ callback = 1; }); alert(callback); } алертом выводится 0, а нужно, чтобы 1)) Подскажите, пожалуйста! |
"Ок, Гугл, что такое асинхронность в JavaScript?"
|
Разобрался с асинхронностью, узнал про WebApis, Stack. Верно ли я понимаю, что операции выполняются следующим образом:
1) var callback = 0; 2) $.ajax({})улетел в WebApis, потом в очередь задач (task's queue), потом event loop запулил его в stack 3) alert(callback);//вывелся коллбэк, который собственной и не изменялся, как был 0 так 0 и остался. 4) После Того как Event Loop выпнул из очереди задач фидбэк ajax запроса, он выполнится: .done(function(data){ callback = 1; }); |
Только после этого callback станет равным 1, я верно понимаю алгоритм работы?
|
с return то что делать?)
|
Kaha,
:-? а нельзя как-то так? .done(function(data){ fn(1); }); |
Цитата:
Либо выполняйте нужное по ответу $.ajax в его методе, либо promise (что по сути тоже, что и первое), либо в особо тяжких случае, если в этом соль, следите за изменениями DOM. |
Цитата:
|
Цитата:
|
я хочу, чтобы callback поменялся с 0 на 1 в функции
.done(function(data){ callback=1; }); Эксперты, подскажите, где я не прав, где не догоняю? Мне нужно получить результат в теле фидбэка |
Часовой пояс GMT +3, время: 07:07. |