使用.then和ajax调用

时间:2015-06-08 14:12:20

标签: javascript jquery ajax

我有一个ajax电话:

p.data = function(){

    return $.ajax({
        url: '/data',
        type: 'POST'
    }).done(function(data){
        console.log('done');
        //do something with data here
        p.dummyDataVar = data[0];
    })
    .fail(function(){
        console.log('fail');
    }).
    always(function(){
        console.log('always');
    });

};

这称为:

this.data()
    .then(p.mySecondFunction);

我希望调用数据,然后在完成时分配一些带有该数据的变量,然后一旦完成,我想做mySecondFunction。但是在上面的代码中,第二个函数发生在ajax调用之前。

另外,无论ajax调用是否失败,我都希望调用mySecondFunction。

1 个答案:

答案 0 :(得分:0)

您可以使用.always()。它已经在您的代码中了。

  

添加要在解析或拒绝Deferred对象时调用的处理程序。

p.data = function () {

    return $.ajax({
        url: '/data',
        type: 'POST'
    }).done(function (data) {
        console.log('done');
        //do something with data here
        p.dummyDataVar = data[0];
    })
    .fail(function () {
        console.log('fail');
    }).always(function () {
        //Call whatever you want
    });

};