jQuery each executes before code inside the each

jQuery each executes before code inside the each

Taking the code below
Why would the entire earch loop execute before the code inside it has been finished?

specifically the FadeTo block.
on line 40 to 46
  1. $this.Shift = function (index) {
  2.             console.log("Shift(): Starting");
  3.             console.log("Shift(): Clicked index " + index);

  4.             $($this.carouItems).each(function () {
  5.                 console.log("Shift(): currentItem index " + this.index);
  6.                 var dif = 0;

  7.                 if (index < activeIndex) {
  8.                     dif = Math.abs(activeIndex - index);

  9.                     console.log("Shift(): Difference " + dif);

  10.                     if (this.index + dif > $this.carouItems.length - 1) {
  11.                         this.index = (((this.index + dif) - 1) - ($this.carouItems.length - 1));
  12.                     }
  13.                     else {
  14.                         this.index = this.index + dif;
  15.                     }
  16.                 }
  17.                 else if (index > activeIndex) {
  18.                     dif = index - activeIndex;

  19.                     console.log("Shift(): Difference " + dif);

  20.                     if (this.index - dif < 0) {
  21.                         this.index = ($this.carouItems.length - Math.abs(this.index - dif));
  22.                     }
  23.                     else {
  24.                         this.index = this.index - dif;
  25.                     }
  26.                 }

  27.                 // Rearrange all items
  28.                 var currentItem = $('#' + this.id),
  29.                     newIndex = this.index;
  30.                 console.log("Shift(): new index " + this.index);
  31.                 

  32.                 currentItem.fadeTo('slow', 0.5, function () {
  33.                     console.log("Shift(): InsideFade " + newIndex);
  34.                     $this.CalculateNewPos(newIndex);
  35.                     $this.CalculateAngle(newIndex);

  36.                     $(this).fadeTo('slow', 1.0);
  37.                 });
  38.                 
  39.             });
  40.             console.log("Shift(): Finished");
  41.         }