У меня есть следующий код:
loadOpportunities: function () {
return $.getJSON("/Opportunity/GetAll").pipe(function (result) {
//do stuff
});
},
loadTypes: function () {
return $.getJSON("/OpportunityTypes/GetAll", null, function (result) {
//do stuff
});
},
loadView: function () {
var self = this;
var deferred = $.Deferred();
if (!self.viewLoaded) {
imp2.mainViewModel.loading(true);
deferred.pipe($.get('/Opportunities/Opportunity/GetView')
.done(function (data) {
$('div#opportunity').html(data);
}));
deferred.pipe(self.loadTypes);
deferred.pipe(self.loadOpportunities)
.done(function () {
imp2.mainViewModel.loading(false);
});
}
return deferred.resolve();
},
Я хочу что-то сделать, когда loadView закончил полностью, включая все обратные вызовы. Другими словами: я хочу выполнить некоторый код, когда вызов ajax GetView, функция loadTypes и функция loadOpportunities, включая их обратные вызовы, выполнены.
Следующая функция обратного вызова срабатывает, когда не все выполнено. Как я могу это сделать?
self.loadView.then(function () {
//Do something after ALL stuff, including all callbacks is done in loadView
});