0

我想将我的 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'
);

我首先得到“嗨”,然后是“你好”,但我想要的是另一种方式:首先是“你好”,然后是“嗨”。我确定我没有.then()以正确的方式使用,坦率地说,我开始认为我永远不会真正掌握$.Deferreds- 我认为$.ajax这是一个Deferred具有所有优点和特质的对象......

4

1 回答 1

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');
}
于 2013-07-17T02:50:16.197 回答