skip to content
Avatar Bruno Garcia

setTimeout vs $.Deferred

Este el típico problema en el cual utilizaba un setTimeout.

Este el típico problema en el cual utilizaba un setTimeout(). Estaba obligado a esperar que se ejecutara la linea superior para poder hacer uso del nodo DOM (en este caso “lightbox_content_user”).

$(“#wrap_all”).prepend(<?php echo json_encode($lightbox) ?\>));

setTimeout(function(){
	$(“.lightbox_content_user”).css(‘width’, container_width - 80);
}, 500);

Ahora estoy comenzando a utilizar un objeto jQuery llamado Deferred. Básicamente hace lo mismo, pero de forma mas limpia. Y así evitamos la famosa Callback Pyramid of Doom.

var dfd = $.Deferred();
dfd.done($(“#wrap_all”).prepend(<?php echo json_encode($lightbox) ?\>);
dfd.resolve($(“.lightbox_content_user”).css(‘width’, container_width - 80));