Me sorprende que no pueda encontrar una respuesta clara a esto. Así, en jQuery, usted puede hacer esto:¿Cómo jQuery tiene funciones asíncronas?
$(someElements).fadeOut(1000);
$(someElements).remove();
cual, comenzará una animación fadeOut, pero antes de que finalice la ejecución de la segunda duración 1, los elementos se quita del DOM. Pero, ¿cómo es esto posible? Sigo leyendo que el JavaScript tiene un solo hilo (véase también: Is JavaScript guaranteed to be single-threaded?). Yo sé que puedo hacerlo bien:
$(someElements).fadeOut(1000).promise().done(function() {
$(someElements).remove();
});
o incluso mejor:
$(someElements).fadeOut(1000, function() {
$(this).remove();
});
Lo que no entiendo es cómo se ejecuta JavaScript en un "solo hilo" pero soy capaz de utilizar estos jQuery funciones que se ejecutan de forma asincrónica y visible para ver el cambio de DOM en diferentes lugares al mismo tiempo. ¿Como funciona? Esta pregunta no es: "¿Cómo puedo solucionar esto?".
Respuesta breve: animación CSS o temporizadores. –
Creo que es porque jQuery usa colas para animaciones, está en algún lugar de los documentos ... – gpasci