Devoluciones de llamada de JavaScript: no todas asincrónicas
Muchos desarrolladores de JavaScript suponen que todas las devoluciones de llamada en JavaScript son asincrónicas, especialmente en situaciones específicas, como las del navegador. solicitudes XHR basadas y E/S de archivos Node.js. Sin embargo, los entornos de navegador y de nodo difieren en su tratamiento de la asincronía de devolución de llamada.
Entorno del navegador
En los navegadores, la asincronía de devolución de llamada surge principalmente de las solicitudes XHR. Esto se debe a que el objeto XHR del navegador utiliza de forma predeterminada la operación asincrónica, lo que permite solicitudes sin bloqueo. Sin embargo, las funciones AJAX de jQuery proporcionan un indicador "asíncrono" que se puede establecer en falso para aplicar solicitudes sincrónicas.
Entorno Node.js
En Node.js, asincronicidad en las devoluciones de llamada generalmente proviene de operaciones que involucran E/S de archivos, Process.nextTick, setTimeout o setInterval. Al ejecutar llamadas a bases de datos con bibliotecas como MongoDB/Mongoose, estas operaciones activan el bucle de eventos V8 debido a su naturaleza de bloqueo inherente.
Determinación de devoluciones de llamadas asincrónicas
La ausencia de un La forma estandarizada de etiquetar devoluciones de llamadas asincrónicas en JavaScript puede dificultar discernir cuáles son realmente. Los desarrolladores deben consultar la documentación o examinar la implementación del código para determinar la asincronicidad.
Creación de devoluciones de llamadas asincrónicas
En versiones anteriores de JavaScript, lograr la asincronicidad requería la utilización de funciones proporcionadas por el host. . Sin embargo, con la introducción de Promises en ECMAScript 6, ha surgido un enfoque de asincronicidad a nivel de lenguaje. Las funciones que devuelven promesas garantizan la ejecución asincrónica de las devoluciones de llamada registradas mediante entonces.
En conclusión, no todas las devoluciones de llamada de JavaScript son inherentemente asincrónicas. Los entornos de navegador y nodo manejan la asincronicidad de manera diferente, y determinar la asincronicidad de la devolución de llamada requiere revisión de la documentación y examen del código. Si bien las funciones proporcionadas por el host ofrecen un medio para crear funcionalidad asincrónica, las promesas brindan una manera estandarizada y conveniente de lograr asincronicidad en JavaScript.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3