让我们先看看我的代码:
$.when(function(){
//blah blah blah...
$.post('submit.php', {name: 'John'}, function(){
console.log('saved!');
}, 'text');
//blah blah blah...
})
.then( $('#data').show() );
这是什么意思?我认为这意味着当第一个函数完成其工作(发布到submit.php
和其他一些工作)时,显示#data
。 (我是对的吗?)
但是,当我运行它时,它首先显示#data
,然后记录saved!
(表示已完成)
为什么?
答案 0 :(得分:2)
你根本不应该打电话给.when()
$.post()
已经返回了一个Deferred对象
您可以直接致电.then()
。
答案 1 :(得分:0)
你可以让它像那样工作
$.post('submit.php', {name: 'John'}, function(){
console.log('saved!');
}, 'text').then( $('#data').show() );
或者,如果您想继续使用 $。时
$.when(function() {
return $.post('submit.php', {name: 'John'}, function(){
console.log('saved!');
}, 'text');
}).then( $('#data').show() );