Mira este código :
<a href="#" id="link">Link</a>
<span>Moving</span>
$('#link').click(function () {
console.log("Enter");
$('#link').animate({ width: 200 }, 2000, function() {
console.log("finished");
});
console.log("Exit");
});
Como puede ver en la consola, la función "animar" es asíncrona y "bifurca" el flujo del código de bloqueo del controlador de eventos. De hecho :
$('#link').click(function () {
console.log("Enter");
asyncFunct();
console.log("Exit");
});
function asyncFunct() {
console.log("finished");
}
siga el flujo del código de bloque!
Si deseo crear mi function asyncFunct() { }
con este comportamiento, ¿cómo puedo hacerlo con javascript / jquery? Creo que hay una estrategia sin el uso de setTimeout()