ich ein Versprechen von einer Funktion wie diese bin Rückkehr:Warten Sie, bis Versprechen und verschachtelte thens abgeschlossen sind
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;
Lassen Sie uns die oben sagen Funktion speichern aufgerufen wird.
In der aufrufenden Funktion möchte ich warten, bis die gesamte Kette abgeschlossen ist und dann etwas tun. Mein Code sieht es wie folgt aus:
var savePromise = self.save();
savePromise.then(function() {
console.log('aftersave');
});
Das Ergebnis ist, dass ‚aftersave‘ ist an die Konsole senden, während die Kette der Versprechungen noch läuft.
Wie kann ich etwas tun, nachdem die ganze Kette abgeschlossen ist?
Was ist, wenn da eine Bedingung ist? Brauchst du das verzögerte Objekt nicht? – FlavorScape
Dies ist nicht die Antwort auf die Frage gestellt. Die Frage war, wie man auf das Ende der Kette warten sollte. Einfach mehr Elemente zur Kette hinzuzufügen ist keine Lösung und wird oft nicht richtig funktionieren. – MeanEYE
@MeanEYE Sie warten t für die Kette zu beenden, indem Sie ein 'then' an der Kette tun. Dies löst das Problem (obwohl, wie Sie angemerkt haben, es nicht die wörtliche Frage beantwortet, sondern die Frage war wirklich über ein Problem). –