我有一个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。
答案 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
});
};