jQuery .promise()

Under dagen hittade jag en bra liten funktion i jQuery när jag letade efter om det fanns en callback på .each() när den var färdig. Jag trodde att .done() skulle fungera men icke och i och med att javascript är async så är det inte alltid lätt att göra något direkt efter en viss sak.

För att demonstrera vad jag menar så tänkte jag visa ett exempel:

jQuery('li').each(function() {
  jQuery(this).slideUp(500);
}); 
jQuery('li').promise().done(function() {
  alert('Färdig!');
});

Detta gör att alla li element åker upp till toppen på 0.5s och sedan skriver vi ut ”Färdig!” när de alla är klara. Det är inte en callback på när .each() är färdig men det är en callback när all animation är färdig.

Vill du läsa mer om .promise() så kan du göra det här.

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *