Jquery 当ajax出现问题时
让我们先看看我的代码:Jquery 当ajax出现问题时,jquery,jquery-deferred,Jquery,Jquery Deferred,让我们先看看我的代码: $.when(function(){ //blah blah blah... $.post('submit.php', {name: 'John'}, function(){ console.log('saved!'); }, 'text'); //blah blah blah... }) .then( $('#data').show() ); 这是什么意思?我认为这意味着当第一个函数完成它的工作(发布到submit.ph
$.when(function(){
//blah blah blah...
$.post('submit.php', {name: 'John'}, function(){
console.log('saved!');
}, 'text');
//blah blah blah...
})
.then( $('#data').show() );
这是什么意思?我认为这意味着当第一个函数完成它的工作(发布到submit.php
和其他一些工作)时,显示#数据。(我说得对吗?)
但是,当我运行它时,它首先显示#数据
,然后显示日志已保存代码>(表示后期完成)
为什么?您根本不应该调用.when()
。
$.post()
已返回延迟的对象。
您可以直接对其调用。然后()
。您可以让它这样工作
$.post('submit.php', {name: 'John'}, function(){
console.log('saved!');
}, 'text').then( $('#data').show() );
或者,如果您想继续使用$。当
当它用函数
包装时,我几乎可以肯定它不会工作。是的,但是post数据是函数应该做的工作的一部分。它在发布前后都会做一些事情。。
$.when(function() {
return $.post('submit.php', {name: 'John'}, function(){
console.log('saved!');
}, 'text');
}).then( $('#data').show() );