使用.then和ajax调用

Using .then with an ajax call

本文关键字:调用 ajax then 使用      更新时间:2023-09-26

我有一个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调用之前。

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

您可以使用.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
    });
};