jQuery $ .post延期

如何使用jQuery的$.post延迟? 我试过了:

 var myFunc = function(data, textStatus, jqXHR) { console.log(data); }; var post = $.post("/url/", someData); $.when(post).done(myFunc); 

通常

 $.post("/url/", someData, function(data) { myFunc(data) }); 

工作正常(更改myFunc签名后)。

$.when...不起作用,没有错误显示我失败。 传递到myFunc.done()函数究竟是什么?

jQuery ajax函数返回一个jqXHR ,它本身就是一个延迟对象(它实现了Promise接口)。 所以不需要$.when()

也没有必要为myFunc使用命名函数表达式,正常的函数声明就可以了。

 function func1(data, textStatus, jqXHR) { console.log('success', data); } function func2(jqXHR, textStatus) { console.log('done', textStatus); } $.post('/url/', someData).success(func1).done(func2); 

演示: http : //jsfiddle.net/mattball/ng7zT/


传递到myFunc.done()函数究竟是什么?

这在上面的jqXHR链接以及$.post都有记录。

成功回调函数将传递返回的数据,该数据将是XML根元素或文本字符串,具体取决于响应的MIME类型。 它还传递了响应的文本状态。

从jQuery 1.5开始,成功的回调函数也传递了一个“jqXHR”对象(在jQuery 1.4中,它传递了XMLHttpRequest对象)。