I'm returning a promise from a function like this:
resultPromise = dgps.utils.save(opportunity, '/api/Opportunity/Save', opportunity.dirtyFlag).then(function () {
self.checklist.saveChecklist(opportunity).then(function () {
self.competitor.save(opportunity.selectedCompetitor()).then(function ... etc.
return resultPromise;
Let's say the above function is called save.
In the calling function I want to do wait for the entire chain to complete and then do something. My code there looks like this:
var savePromise = self.save();
savePromise.then(function() {
console.log('aftersave');
});
The result is that 'aftersave' is send to the console while the chain of promises is still running.
How can I do something after the whole chain is complete?
Instead of nesting the promises, chain them.
resultPromise = dgps.utils.save(opportunity, '/api/Opportunity/Save', opportunity.dirtyFlag).then(function () {
return self.checklist.saveChecklist(opportunity);
}).then(function () {
return self.competitor.save(opportunity.selectedCompetitor());
}).then(function () {
// etc
});
// return a promise which completes when the entire chain completes
return resultPromise;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With