function test(str) { setTimeout(() => { console.log(str); }, 10000); } let i = "1"; test(i); //test 1 console.log(i, "sync"); i = "2"; test(i); //test 2 console.log(i, "sync");¿Es por el cierre que las pruebas 1 y 2 imprimen 1 y 2 en secuencia? Si no escribo setTimeout dentro de la función, el resultado es el último valor i