我想将我的ajax函数的结果传递给另一个(有点像“冒泡一个事件”)。我真的需要保持ajax包装器功能,即通用,所以我正在寻找一种不会触及myAjaxHandler()
的解决方案
$('button').on(
'click',
myAjaxHandler()
);
function myAjaxHandler(){
return $.ajax({
...
});
}
myAjaxHandler().done(
function(result){
console.log(result); // shows 'hello'
}
).then(
console.log('hi') // shows before 'hello'
);
我首先得到'hi',然后'hello',但我想要另一种方式:首先'你好',然后'你好'。我确定我没有以正确的方式使用.then()
,坦率地说,我开始认为我永远不会抓住$.Deferreds
- 我认为$.ajax
是Deferred
1}}具有所有好处和特质的对象......
答案 0 :(得分:0)
这对你有用吗?它不会弄乱myAjaxHandler()
$('button').on('click', function(){
myAjaxHandler().done(function(results){
console.log(results); //Say Hello
sayHiFunction(); //Say Hi
});
});
function myAjaxHandler(){
return $.ajax({
...
});
}
function sayHiFunction(){
console.log('hi');
}