我如何使用jQuery的延迟$.post?我试过了:
var myFunc = function(data, textStatus, jqXHR) {
console.log(data);
};
var post = $.post("/url/", someData);
$.when(post).done(myFunc);
Run Code Online (Sandbox Code Playgroud)
通常
$.post("/url/", someData, function(data) { myFunc(data) });
Run Code Online (Sandbox Code Playgroud)
工作正常(更改myFunc签名后).
$.when...不起作用,没有错误显示我失败.究竟是什么.done()功能传入myFunc?
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);
Run Code Online (Sandbox Code Playgroud)
演示:http://jsfiddle.net/mattball/ng7zT/
究竟是什么
.done()功能传入myFunc?
这在上面的jqXHR链接中记录,也在$.post.
成功回调函数将传递返回的数据,该数据将是XML根元素或文本字符串,具体取决于响应的MIME类型.它还传递了响应的文本状态.
从jQuery 1.5开始,成功的回调函数也传递了一个"jqXHR"对象(在jQuery 1.4中,它传递了XMLHttpRequest对象).
| 归档时间: |
|
| 查看次数: |
4324 次 |
| 最近记录: |