Ситуация выглядит следующим образом:
$("#someThing").datepicker({
//someOptions,
onSelect: function() {
/*Does some async stuff*/
AJAXCALL();
/*execute AFTER ajaxcall has finished*/
foo();
}
})
function AJAXCALL() {
$.post('someUrl.php', {
//nothing to transmit
}, someFunction(data))
}
Дело в том, что приводит к каскаду функций, которые обрабатывают DataFromTheDatabase.
Код внутри этого каскада либо синхронный, либо внутри есть секции async / await, которые правильно синхронизируют код.
В конечном итоге, и начальная AJAXCALL()
, и последующие функции ДОЛЖНЫ завершиться до выполнения foo()
.
Было бы достаточно сделать следующее:
$("#someThing").datepicker({
//someOptions,
onSelect: function() {
AJAXCALL().then(() => {
foo()
})
}
})
function AJAXCALL() {
return $.post('someUrl.php', {
//nothing to transmit
}).then((data) => someFunction(data))
}