tipos - promises javascript w3schools
Espere hasta que la promesa y las funciones anidadas estén completas (1)
Estoy devolviendo una promesa de una función como esta:
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;
Digamos que la función anterior se llama guardar.
En la función de llamada, quiero esperar a que se complete toda la cadena y luego hacer algo. Mi código allí se ve así:
var savePromise = self.save();
savePromise.then(function() {
console.log(''aftersave'');
});
El resultado es que ''aftersave'' se envía a la consola mientras la cadena de promesas aún se está ejecutando.
¿Cómo puedo hacer algo una vez completa toda la cadena?
En lugar de anidar las promesas, encadenalas.
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;