您好,我对这个论点很困惑:我知道在 javascript 函数中有时会以异步方式执行,这是我的问题。我有一个名为
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
});