调用AJAX函数并等待AJAX函数完成。
$.when(updateApplication("about_you"))
.then(function() {
console.log("when is working perfectly : ");
});
function updateApplication(){
//some code here
// ajax call update the application and get response back like if applications is updated successfully or not with true/false status.
return $.ajax({
type: 'POST',
url: base_url,
data: {json: data},
dataType: 'json'
}).done( function( data ) {
return data;
}).fail({
return data;
});
}
$.when
调用AJAX函数,AJAX函数完美地工作,但$.when
内的代码不执行。 (console.log
从不打印)
完成了$。当完成时
$.when(updateApplication("about_you")).then(function(){
console.log("when is working perfectly : ");
}).done(function(data){
console.log("see if it works : ");
});
仍然没有console.log可以工作,换句话说$。当body永远不会执行
调用时再试一次
$.when(updateApplication("about_you")).done(function(data){
console.log("see if it works : ");
});
仍然无法打印console.log。知道调用有什么问题。一旦ajax调用完成,需要修复能够执行$ .when的主体。
答案 0 :(得分:2)
您已经在updateApplication
内处理了ajax,您需要删除正确使用的done
用法:
function updateApplication(){
//some code here
// ajax call update the application and get response back like if applications is updated successfully or not with true/false status.
return $.ajax({
type: 'POST',
url: base_url,
data: {json: data},
dataType: 'json'
});
}
如果您仍然没有得到任何类型的回复,则可能需要在链接.then
之前先检查失败:
$.when(updateApplication("about_you"))
.fail(function(){ alert('Failed!'); })
.then(function(){ alert('Success!'); });
另请注意,如果您计划在此处结束承诺链,then
可能会替换为done
。 then()
是pipe()
的别名并返回一个新的承诺,其中done
只返回一个无法链接的成功对象