Según tengo entendido, una promesa es algo que puede resolver () o rechazar (), pero me sorprendió descubrir que el código de la promesa continúa ejecutándose después de que se llama a resolver o rechazar.
Consideré que resolver o rechazar es una versión de salida o retorno compatible con asíncronos, que detendría la ejecución inmediata de todas las funciones.
¿Alguien puede explicar la idea detrás de por qué el siguiente ejemplo a veces muestra el archivo console.log después de una llamada de resolución?
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");
});
resolve()
no es una declaración de control de JS que mágicamente tendría el efecto dereturn
, es solo una llamada de función, y sí, la ejecución continúa después de ella.