Se reconoce que JavaScript es de un solo subproceso, pero mientras pruebo el siguiente código, cuando uso setTimeout y Promise, obviamente se ejecutan de forma asíncrona.
function testTimer(){ setTimeout(()=>{console.log(2)},100) } function testLoop(){ for(let i = 0; i < 1e3; i++){} console.log(3) } function testPromise(){ return new Promise((resolve)=>{ for(let i = 0; i < 1e3; i++){} resolve(); }) } console.log(1) testTimer(); testLoop(); console.log(4) testPromise().then(()=>{console.log(5)}) console.log(6) Si javascript es completamente de subproceso único, la consola debe imprimir 1, 2, 3, 4, 5, 6 en orden. Pero la función de subproceso único solo se puede ver en testLoop() , podemos ver que el uso de Promise y setTimeout permiten que el código a continuación se ejecute, ¿alguien podría decir cómo se logra esto?