2016-07-12 5 views
0

С помощью этой директивы: ng-file-uploadнг-файла загрузить последовательные обещания

Как я могу загружать последовательно (в порядке очереди,) несколько файлов по одному? Я думаю о цепных обещаниях, но я не знаю, как я могу объединить обещания и директивы.

This is an example для загрузки нескольких файлов, но все в то же время и не в порядке.

Это мой код:

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); 
    });       
} 

ответ

0

Я нашел решение, может быть, не лучший, но это работает http://jsfiddle.net/erLax2fm/2/

уаг DoSomething = функция (индекс) {

 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);