Cel: skasowanie drzewa katalogów

Kod:
[JAVASCRIPT] pobierz, plaintext
  1. function removeFilesystemElement(path, isDir)
  2. {
  3. if (isDir)
  4. {
  5. var loopEnd = $.Deferred();
  6.  
  7. // pobieramy liste podkatalogow/plikow
  8. $.get(ajaxJsonFileListUrl, { parentDir: path }, function(result) {
  9. var loopSync = $.Deferred();
  10.  
  11. $.each(result.content.files, function(index, item)
  12. {
  13. if (item.basename != '.' && item.basename != '..')
  14. { // kasujemy rekursywnie podkatalog/plik
  15. loopSync = loopSync.then( removeFilesystemElement( path + '/' + item.basename, item.type == 'dir') );
  16. }
  17. });
  18.  
  19. // gdy wszystko skasowane, to skasujmy katalog nadrzedny
  20. loopSync = loopSync.then(
  21. $.get(ajaxJsonDeleteUrl, { path: path }, function(result) {
  22. console.debug('delete empyty dir: ' + path);
  23. // odczekajmy chwile (w zasadzie to jest po to, zeby latwiej bylo debugowac) i wtedy wyslijmy informacje, ze zadanie wykonane(resolve)
  24. setTimeout(function() { console.debug('resolve'); loopEnd.resolve(); }, 3000);
  25. })
  26. );
  27.  
  28. });
  29.  
  30. return loopEnd;
  31.  
  32. } else { // jesli to plik to po prostu skasujmy zwracajac get jako obiekt deferred
  33. return $.get(ajaxJsonDeleteUrl, { path: path }, function(result) {
  34. console.debug('delete file: ' + path);
  35. });
  36.  
  37. }
  38. }
[JAVASCRIPT] pobierz, plaintext


Oczekiwania:
- skasowane drzewo katalogów
- w konsoli "delete empyty dir" powinno się pojawiać naprzemiennie z "resolve".

Wyniki:
Katalogi są kasowane w odwotnej kolejności niż oczekuję czyli operacja kończy się niepowodzeniem. Dodatkowo najpierw leci seria delete empyty dir, a później seria "resolve".

Co robić, jak żyć? Proszę o pomoc:)

edit: jquery > 1.8