В следующем случае: у меня есть функция-обертка InitializePage (), которая вызывается при загрузке страницы.Этот содержит функции ad, из которых a и b содержат AJAX.Это будет выглядеть так:
function wrapperFunction() {
a() //contains AJAX
b() //contains AJAX
c() //Synchronous
d() //Synchronous
}
Теперь я хочу, чтобы функция b запускалась, только если функция a уже завершена.Я знаю, что я мог бы легко сделать это, сделав wrapperFunction «async», использовать «await» перед функцией a, а затем вернуть обещание из функции a (используя JQuery Ajax) следующим образом:
function a() {
return $.post('somefile.php', {
//someCode
})
}
Но я хочу знать одну вещь: сама функция a должна обрабатываться JS как СИНХРОННЫЙ код, пока не достигнет JqueryAJAX внутри функции, верно?Только когда он выполняет вызов AJAX, JS передает его API C ++ и переходит к следующему фрагменту кода независимо от того, завершил ли еще вызов AJAX выполнение или нет, верно?
Итак, давайте предположим, что дажехотя это было бы излишне хакерским, я бы сделал это:
async function a() {
await $.post('someFile.php', {
//some code
})
}
Поскольку я синхронизировал AJAX-часть функции a (), это означало бы, что на уровне wrapperFunction () JS НЕ будет работать дофункция a () и все ее содержимое завершено?