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对象)。