Dropzone.js: ожидание метода `processQueue` - PullRequest
0 голосов
/ 03 июня 2018

Я использовал Dropzone.js в прогрессивной форме представления данных.Чтобы прояснить сценарий, пользователь сначала вводит персональные данные, а затем, нажав next, появляется форма dropzone, куда пользователь загружает файлы.

Я отключил autoProcessQueue, чтобы дождаться, пока пользователь завершит присоединение всех необходимых файлов, а затем добавляю дополнительные параметры и токен авторизации.В этот момент, когда пользователь нажимает next, я вызываю метод processQueue(), и это приводит к немедленному переходу к следующей форме, в то время как вложенные файлы загружаются в фоновом режиме.Проблема в том, что мне нужно подождать, пока файлы будут загружены, прежде чем перейти на следующую страницу.Например:

var dropZone = new Dropzone ('[vu-dropzone]', {
    ...
    autoProcessQueue = false,
    params: {
        purpose: 'Registration',
        level: 'A'
    },
    headers: {Authorization: this.$store.getters['user/getToken']}
}); 

//submission method 
// what I'm actually doing
submit(){
  this.dropZone.processQueue();
  // go to next route/form
}
//what I'm after 
async submit(){
    await this.dropZone.processQueue();
     // go to next route/form
}

Есть ли способ добиться этого?

1 Ответ

0 голосов
/ 05 июня 2018

Если вы хотите подождать, пока Dropzone загрузит все изображения, прежде чем перейти к следующему экрану, вам, вероятно, следует использовать собственные события success или successmultiple.

var dropZone = new Dropzone ('[vu-dropzone]', {
    // ...
    autoProcessQueue = false,
    params: {
        purpose: 'Registration',
        level: 'A'
    },
    headers: {Authorization: this.$store.getters['user/getToken']},
    uploadMultiple: true,
    maxFiles: 10,
    parallelUploads: 10,
    init: function() {
        this.on('successmultiple', function(file, response) {
            // Here you can go to next form/route
        }
    }
}); 

Я рекомендую установить для maxFiles и parallelUploads одинаковое значение, максимальное количество файлов, которое вы хотите разрешить, поэтому при вызове processQueue() все файлы будут загруженыв одном запросе.

...