vue.js - Vue:在函数中正确使用 async/await?
问题描述
我仍在尝试习惯异步/等待,但我想我错过了一些东西。我有一个带有@click
调用的按钮submitFinalAssets
。在里面submitFinalAssets()
,我正在尝试查看是否有图像等待上传。如果是这样,那么我想调用triggerDropzoneUpload()
并等待它完成,然后再执行submitFinalAssets()
.
methods: {
triggerDropzoneUpload: function() {
if (this.$refs.myVueDropzone.getActiveFiles()) {
return this.$refs.myVueDropzone.processQueue();
} else {
return;
},
submitFinalAssets: async function() {
if (!this.note) {
this.showError = true;
}
await this.triggerDropzoneUpload();
axios.post('/upload-urls', {
image: this.imageUrl,
})
});
}
}
解决方案
您还必须向await
axios 发布请求,因为它是异步的。
submitFinalAssets: async function() {
if (!this.note) {
this.showError = true;
}
await this.triggerDropzoneUpload();
await axios.post('/upload-urls', { // put the await keyword here to wait for the asynchronous axios post request
image: this.imageUrl,
})
});
有关异步等待的更多信息,这篇文章很好地解释了它。
推荐阅读
- html - 准确的 pandoc gfm 转换
- php - Conditional remove adjacent duplicates from array
- ckeditor - CKEditor:中心对齐不起作用
- python - 如何使用 Tensorflow 和 OpenCV 对经过训练的分类器进行流量计数?
- php - How to access Laravel symbolic link when uploaded to Heroku
- javascript - Having problems getting this multi level bootstrap 4 dropdown clone to mimc btn-dark style
- javascript - Is there a way to change your timezone in Chrome devtools?
- sql-server - Concatenation of textbox values to build SQL query
- windows - 我们如何在 Windows 机器上使用 .txt 文件作为 C++ 语言的命令行输入?
- javascript - React-Native connect Socket IO to aws elb securely