Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

156
Vistas
Javascript, las funciones asíncronas se comportan de manera diferente entre Mac y Windows/Linux

await / async parece comportarse de manera diferente en Chrome y Safari en Mac, en comparación con Chrome en Windows y Linux.

 <select id="dbgselect"> <option>1</option> <option>2</option> <option>3</option> </select> <script> async function dbg(type) { console.log(`A [${type}]`); await dbg2(type); console.log(`B [${type}]`); } async function dbg2(type) { console.log(`C [${type}]`); } document.getElementById("dbgselect").oninput = () => { dbg("input"); }; document.getElementById("dbgselect").onchange = () => { dbg("change"); }; </script>

Al hacer una selección en el menú desplegable, la salida en Linux/Windows (en Chrome) es:

 A [input] C [input] A [change] C [change] B [input] B [change]

La salida en Mac (tanto en Chrome como en Safari):

 A [input] C [input] B [input] A [change] C [change] B [change]

SIN EMBARGO, si agrego esto en la parte inferior, para invocar dbg fuera del contexto de un evento:

 setTimeout(() => { dbg("input"); dbg("change"); }, 0);

Luego, el resultado en Mac cambia y se convierte en el mismo que en Linux y Windows (es decir A,C,A,C,B,B en lugar de A,C,B,A,C,B ).

Mis preguntas:

  1. ¿Alguna de estas implementaciones es un error? (es decir, una violación de algún estándar).

  2. ¿Esta diferencia en el comportamiento está documentada o discutida en alguna parte? no pude encontrar

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda