Underscore.js es una biblioteca de JavaScript que proporciona muchas funciones útiles como el mapa, el filtro, la invocación, etc., incluso sin usar ningún objeto integrado.
La función _.defer() se utiliza para invocar/llamar a una función hasta que se borre la pila de llamadas actual. Su principal ventaja es que realiza cálculos costosos, cálculos o HTML en fragmentos sin bloquear la actualización de los subprocesos de la interfaz de usuario. Tiene un funcionamiento similar a la función setTimeOut() con un retraso de 0. La función que se pasa a esta función se invocará primero.
Una pila de llamadas es un mecanismo para que un intérprete, como el intérprete de JavaScript, mantenga un registro de su lugar en un script que llama a varias funciones.
Sintaxis:
_.defer(function, *arguments)
Parámetros:
Toma dos argumentos:
- La función
- Los argumentos (opcional)
Valor devuelto:
No devuelve ningún valor sino que realiza la función pasada.
- Pasar la función alert() a la función _.defer():
La función _.defer() primero verifica la pila de llamadas actual. Si se borra, se ejecutará la función de alerta() pasada y se mostrará la string que se le pasó, que es «Esta es la función diferida». Pero si la pila de llamadas actual no se borra y tiene que realizar otras tareas, la función alerta() no se llamará inmediatamente, sino que tendrá que esperar hasta que la pila se vacíe.
Ejemplos:
html
<html> <head> <script src= "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> </script> </head> <body> <script type="text/javascript"> _.defer(function() { alert('This is the deferred function'); }); </script> </body> </html>
- Producción:
- Realizar sumas usando la función _.defer():
Podemos realizar todo tipo de operaciones matemáticas usando la función _.defer(). Como aquí, estamos sumando 7 y 3 y luego alertándolo. Se seguirá el mismo procedimiento. Primero, se verificará la pila de llamadas actual. Si no está vacío, no se llamará a ninguna otra función. Pero si todo está borrado, se llamará a la función de alerta mostrando la suma de 7 y 3, que es 10.
Ejemplo:
HTML
<html> <head> <script src= "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> </script> </head> <body> <script type="text/javascript"> _.defer(function() { alert(7 + 3); }); </script> </body> </html>
- Producción:
- Pasar la función console.log() a la función _.defer():
Incluso podemos usar otras funciones como la función console.log(). La función _.defer() verificará si la pila de llamadas está vacía o no. Si no está vacío, no se llamará a la función console.log(). De lo contrario, se mostrará «Esta es la función diferida» en la consola.
Ejemplo:
html
<html> <head> <script src= "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> </script> </head> <body> <script type="text/javascript"> _.defer(function() { console.log('This is the deferred function'); }); </script> </body> </html>
- Producción:
- Realización de una operación de adición a la función _.defer():
Incluso podemos realizar una operación de adición a la función console.log(). Como aquí, estamos sumando 1000 y 5666. Si la pila de llamadas está vacía, se mostrará «6666» (1000 + 5666); de lo contrario, no se llamará a ninguna función.
Ejemplo:
html
<html> <head> <script src= "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> </script> </head> <body> <script type="text/javascript"> _.defer(function() { console.log(1000 + 5666); }); </script> </body> </html>
- Producción:
NOTA:
Estos comandos no funcionarán en la consola de Google o en Firefox, ya que estos archivos adicionales deben agregarse y no se agregaron.
Por lo tanto, agregue los enlaces dados a su archivo HTML y luego ejecútelos.
Los enlaces son los siguientes:
HTML
<script type="text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> </script>