Entonces javascript es de un solo subproceso. Entonces, ¿por qué la salida es como tal? Esto es súper simple, pero ¿por qué es así? He visto esto , nuevamente, todo el tema no aborda esta pregunta.
function test() { return new Promise((resolve, reject) => { console.log('promise started'); const rand = Math.floor(Math.random() * 2); if (rand===0){ resolve(); } else { reject(); } }) } console.log('program start'); test() .then(() => {console.log('test ran ok')}) .catch(err => {console.log('FAILED')}); console.log('program end');Salida del programa:
program start promise started program end test ran ok