我开始更多地使用 jQuery Deferred 对象,但遇到了这个问题:
我有一个中央 AJAX 函数,它执行数据的预验证、ajax 设置以及发送到服务器并返回 xyz 作为数据的其他一些操作。如何访问 $.when(ajaxfn).then(dosomethingwithresult()); 的“then”部分中的“xyz”我知道 ajaxfn 返回一个延迟对象,但是有什么办法可以向前传递 xhr 的 responseText 吗?
我基本上是这样做的......
function ajaxfn(data) {
prevalidate(data);
return $.ajax(settings);
}
$.when(ajaxfn).then(function() {
// put 'xyz' on the page somewhere.
});
目前我只是将 $.data 指针传递给 ajaxfn,然后在 ajax 请求成功时,我有 $('body',pos,result) ,然后像这样访问它然后$('body).data(pos) == xyz。我想知道是否有更好的方法来完成我所描述的事情?
最佳答案
这可以像这样简化:
function ajaxfn(data) {
prevalidate(data);
return $.ajax(settings);
}
ajaxfn().then(function(response) {
console.debug(response);
});
不需要使用 $.when
对象。 ajax 已经返回一个 promise 。
关于jQuery Deferreds - 将 $.when 的结果传递给 $.then,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6338647/