Действительно борется с этим в данный момент, поэтому, если бы у кого-нибудь были какие-то советы, которые были бы фантастическими. Довольно уверен, что это случай, когда я усложняю что-то простое, но мы увидим!Угловая загрузка файла Обратный звонок
Используя следующую для загрузки файлов на сервер
https://github.com/nervgh/angular-file-upload/wiki/Module-API
Я создаю несколько экземпляров файла пользователя для определенных типов файлов (не могу просто использовать один, как мне нужно разные URL-адрес для загрузки по каждый)
Так я тогда есть список, как
var uploaders = [a list of file object uploaders]
то, что я хочу сделать, это итерация по списку, вызовите uploadAll()
на каждом, после того как файлы для каждого из них были загружены, продолжите сценарий.
Проблема: я не думаю, что функция uploadAll
реализует promise
, поэтому, когда я пытаюсь выполнить следующий код, остальная часть скрипта продолжается до того, как файлы будут успешно загружены.
Вот что у меня есть
var deferred = $q.defer();
var uploaders = [my list of object uploaders]
var allUploads = uploaders.map(function(uploaders) {
var singleUploadPromise = uploaders.uploadAll();
return singleUploadPromise;
});
$q.all(allUploads).then(function() {
console.log('Finished uploading all files')
deferred.resolve('Finished uploading all files');
}, function(error) {
deferred.reject(error);
});
return deferred.promise;
Файлы получить загружены, но остальная часть сценария выполняет, прежде чем они делают. Когда я
console.log(allUploads)
Я получаю список undefined
элементов. Поэтому я явно ошибаюсь, но я не уверен, как двигаться вперед.
Я не лучший в ES6, но я не думаю, что uploadAll() возвращает ничего https://github.com/nervgh/angular-file-upload/blob/master/src/services/ FileUploader.js # L134 – ChrisY