javascript - Dropzone.js:等待`processQueue`方法
问题描述
我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 }
有什么办法可以做到这一点?
解决方案
如果您想在移动到下一个屏幕之前等待 dropzone 上传所有图像,您可能应该使用 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()
所有文件将在一个请求中上传。
推荐阅读
- javascript - 从点击的元素 Django 中获取数据
- airflow - 春天云数据流和气流
- c - c中的掷骰子游戏
- javascript - 引发错误
- android - Flutter iOS - 在加载 Google Maps 小部件之前无法获取 initialCameraPosition 的当前位置
- database - 如何在 octobercms 中创建 0..1 对多的关系?
- go - Go中嵌套结构的问题
- php - 允许重定向到不在 htdocs 中的 URL (XAMPP)
- python - 无效的语法和不确定原因
- mysql - 如何根据行日差和分区对 SQL 中的列进行排名?