I have an ajax call:
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 is called by:
this.data()
.then(p.mySecondFunction);
I wish to call the data, then on done assign some vars with that data, then once this is all done I want to do mySecondFunction. But in the above code the second function is happening before the ajax call.
Also, I would like mySecondFunction to be called not matter whether the ajax call fails or not.
You can use .always() for this. It's already in you code.
Add handlers to be called when the Deferred object is either resolved or rejected.
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
});
};
why use english ?