当前位置: 首页 > news >正文

el-upload的before-upload中请求写法

错误写法
beforeUpload(file) {policy().then(response => {return true; // 这个return仅针对.then()内部的回调函数}).catch(() => {return false; // 这个return仅针对.catch()内部的回调函数});// 整个beforeUpload函数没有显式返回语句,默认返回undefined
}
//无效!这个true不会被el-upload接收 函数默认返回undefined → 立即上传
正确写法
beforeUpload(file) {return policy().then(response => {// 设置上传参数...return true; // 这个true会被包裹在Promise中返回给el-upload}).catch(() => {return false; // 这个false会被包裹在Promise中返回给el-upload});
}
正确写法
beforeUpload: async function(file) {try {const response = await policy();// 设置参数...return true;} catch (error) {return false;}
}
正确写法beforeUpload(file) {let _self = this;return new Promise((resolve, reject) => {policy().then(response => {console.log("响应的数据",response);_self.dataObj.policy = response.data.policy;_self.dataObj.signature = response.data.signature;_self.dataObj.ossaccessKeyId = response.data.accessid;_self.dataObj.key = response.data.dir +getUUID()+'_${filename}';_self.dataObj.dir = response.data.dir;_self.dataObj.host = response.data.host;console.log("响应的数据222。。。",_self.dataObj);resolve(true)}).catch(err => {reject(false)})})}

是因为 beforeUpload 钩子需要返回一个 Promise 或同步值来控制上传流程,但你的错误代码没有正确返回任何有效结果

beforeUpload 的返回值决定上传流程:
如果返回 undefined(无返回值),el-upload 会默认允许上传
你的代码中,policy().then().catch() 是一个独立的 Promise 链,但没有被返回给 beforeUpload
异步操作与同步返回的矛盾:
policy() 是异步请求,beforeUpload 函数会立即执行完毕并返回 undefined
无论 policy() 成功还是失败,其结果都无法影响 beforeUpload 的返回值
因此,文件会立即上传,而不会等待凭证获取完成

相关文章:

  • 域名怎样连接到网站seo优化查询
  • php 做网站网络营销的模式有哪些
  • asp网站上一篇下一篇代码seo优化需要做什么
  • 宁波高等级公路建设指挥部网站哪个平台视频资源多
  • wordpress解决google字体百度seo公司哪家最好
  • 做pc端网站精英扫描图片找原图
  • 【Docker基础】Docker容器管理:docker pause、stop、kill区别
  • PDF24 Creator绿色便携版v11.26.0
  • 系统思考:预防重于治疗
  • CVPR-2025 | 上交拥挤无序环境下的具身导航最新基准!RoboSense:以机器人为中心的具身感知与导航大规模数据集
  • 通过pyqt5学习MVC
  • nn.Embedding 和 word2vec 的区别
  • Boosting:从理论到实践——集成学习中的偏差征服者
  • 【番外篇】TLS指纹
  • 设计模式-桥接模式、组合模式
  • 龙虎榜——20250625
  • CSP-J 题单
  • 数据赋能(323)——安全与合规——诚信原则
  • Ruoyi-Vue 升级JDK21、Springboot3、Mybatis3
  • 【GStreamer】减小延时的参数设置、从RTP中获取时间戳
  • 鸿蒙ArkUI---基础组件Tabs(Tabbar)
  • 用Rust写平衡三进制乘法器
  • Linux size命令详解
  • PYTHON从入门到实践6-字典
  • 使用 EasySearch 构建 RAG(检索增强生成)系统
  • 根据不同的环境打包