Warum setzt javascript ES6 Promises die Ausführung nach einer Behebung fort?

So wie ich das verstehe ein Versprechen ist etwas, das kann in resolve() oder reject (), aber ich war überrascht zu erfahren, dass code in das Versprechen, weiterhin ausgeführt werden, nachdem ein resolve oder reject aufgerufen wird.

Als ich auflösen, ablehnen, oder ein async-freundliche version der exit oder return , das wäre halt alle unmittelbaren Ausführung der Funktion.

Kann jemand erklären, der Gedanke dahinter, warum das folgende Beispiel manchmal zeigt die Konsole.melden Sie nach einer Behebung nennen:

var call = function() {
    return new Promise(function(resolve, reject) {
        resolve();
        console.log("Doing more stuff, should not be visible after a resolve!");
    });
};

call().then(function() {
    console.log("resolved");
});

jsbin

InformationsquelleAutor der Frage Ludwig Van Beethoven | 2015-03-06

Schreibe einen Kommentar