Привет, я очень смущен этим аргументом: я знаю, что в javascript функция иногда возникает в асинхронном режиме , и вот моя проблема. У меня есть функция, называемаяфункция и отложенная jquery
function createPopupHour()
Эта функция создает элемент выбора html и ничего не возвращает. Я вызываю эту функцию в запросе $ .AJAX в успешной части запроса.
$.ajax({
url:"responseregistrodocente.php",
data:{
operazione:'caricaAssenza',
idAssenza:id_array[3],
codiceFiscale: id_array[0],
data:id_array[1],
tipo:id_array[2]
},
type:"POST",
dataType:"json",
success: function (jsonObject) {
createPopupHourSelect()
//other code
});
},
error: function(error){
//XMLREQQUESTOBJECT
alert(error.responseText);
location.reload();
},
cache:false,
ifModified:false
});
проблема в том, что когда я вызываю функцию, другой код не учитывает, что моя функция завершается. Я знаю, что в jquery есть «отложенный объект», может быть, мне нужно, чтобы моя функция создавала отложенный объект и возвращала его в код. но как sintax :? или есть еще один более простой и сухой раствор ???
Правильно ли это?
function createPopupHour select(){ //staff to do
return $.deferred();//it's in pending state
}
и $ .ajax
$.ajax({
url:"responseregistrodocente.php",
data:{
operazione:'caricaAssenza',
idAssenza:id_array[3],
codiceFiscale: id_array[0],
data:id_array[1],
tipo:id_array[2]
},
type:"POST",
dataType:"json",
success: function (jsonObject) {
var defered=createPopupHourSelect()
defered.then(function{//other code])
defered.resolve();
});
},
error: function(error){
//XMLREQQUESTOBJECT
alert(error.responseText);
location.reload();
},
cache:false,
ifModified:false
});
Что вы подразумеваете под "другим кодом, не замечающим, что моя функция заканчивается"? – Johan
Использование асинхронного кода не требуется для нормального потока программы, когда функция возвращает код после выполнения вызова. Если другой код не работает, возможно, это связано с тем, что ваш код разбился либо при вызове функции, либо внутри функции. Проверьте консоль ошибок на наличие сообщений об ошибках Javascript. – Guffa
Я имею в виду, что код ДОЛЖЕН запускаться до того, как функция beacose я не могу, например, изменить стиль css кнопки, чем я создаю в функции, потому что, когда css изменен, кнопка не существует. –