2016-07-12 6 views
0

Mit dieser Richtlinie: ng-file-uploadng-Datei-Upload sequenzielle Versprechen

Wie kann ich die Reihe nach laden (in der Reihenfolge, Warteschlange), um mehrere Dateien nacheinander? Ich denke über angekettete Versprechen nach, aber ich weiß nicht, wie ich Versprechen und Anweisungen kombinieren kann.

This is an example mehrere Dateien hochladen, aber alle zur gleichen Zeit und nicht in der Reihenfolge.

Dies ist mein Code:

for (var i = 0; i < files.length; i++) { 
    Upload.upload({ 
     url: config.base+'/upload/', 
     data: { 
      file: files[i], 
     } 
    }).then(function (response) { 
     vm.reloadImatges(); 
     vm.upload.progress=0; 
     vm.upload.files--; 
    }, function (resp) { 

    }, function (evt) { 
     vm.upload.progress = parseInt(100.0 * evt.loaded/evt.total); 
    });       
} 

Antwort

0

ich eine Lösung gefunden, vielleicht nicht die beste, aber es funktioniert http://jsfiddle.net/erLax2fm/2/

var doSomething = function (index) {

 var defer = $q.defer(); 

     Upload.upload({ 
      url: url: config.base+'/upload/', 
      data: { 
       file: objects[index] 
      } 
     }).then(function (response) { 
      objects[index].processed = true; 
      if (objects[++index]) { 
       defer.resolve(index); 
      } else { 
       defer.reject(); 
      } 
     }, function (response) { 


     }, function (evt) { 
      vm.upload.progress = parseInt(100.0 * evt.loaded/evt.total); 
     }); 

     defer.promise.then(doSomething); 
    }; 

    doSomething(0); 
Verwandte Themen