ejemplo:
exports.products = (req, res) => { let el = 1; for (let i = 0; i < 100000000000000; i++) { el += i; } console.log(el); ... ... ... res.redirect('/'); };Si agrego un bucle como este entre mi código, ¿cuál será el bloque (bucle de evento o CPU)?
Cuando ejecuto esto, mi página permanece cargada durante mucho tiempo para procesar el código.
Al mismo tiempo, la lista de procesos se ve así:
La página permanece obstruida hasta que finaliza este proceso.
editar: cuando realizo operaciones que no ejecutan la misma función desde un navegador separado, la página permanece colapsada.
Ahora, ¿esto se está derrumbando debido al bloqueo del bucle de eventos? ¿O es porque mi procesador no tiene potencia de sobra?
JavaScript es un lenguaje de un solo subproceso. Cualquier acción síncrona se ejecuta en ese subproceso a través de Event Loop . El proceso de bucle se está ejecutando en ese subproceso. Entonces, cuando el ciclo aún está en curso, JS está usando todo el hilo y, una vez que finaliza, el uso de la CPU debería disminuir.
Su CPU está bien pero su código está bloqueando el hilo principal.
Puede ver este increíble video que describe cómo funciona Event Loop en JavaScript