小程序
小游戏
企业微信
微信支付
扫描小程序码分享
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
理顺一点。
promise是单个完成状态,只会触发一次的。进度是一个过程,所以要么是把上传任务存起来,要么是把上传进度存起来,供查询。
const process = {} // 存上传进度 const tasks = {} // 存上传任务 static uploadFile(id, name, path, token){ return new Promise(reslove, reject) { let task = wx.uploadFile({ success (res) { reslove(res) } }) task.onProgressUpdate(res => { process[name] = res // 存起来 console.log('当前任务', name, '的进度是:', res.progress) }) tasks[name] = task // 存起来 } } // 根据 name 查询当前上传的进度 function checkProgress(name) { return process[name] || {} } ========= // 实际上传调用的地方 FileRequest.uploadFile(id, '微盟解决方案.zip').then(res => { console.log('文件:', '微盟解决方案.zip', '上传成功!') }) // 自行根据需要在某个时刻去查询上传进度。 let timer = setInterval(function(){ let progress = checkProgress('微盟解决方案.zip') if(progress.process >= 100) { clearInterval(timer) } }, 1000) // 读取一个任务,查进度。 多次 onProgressUpdate 需要注意是否被覆盖。 tasks['微盟解决方案.zip'].onProgressUpdate(res => { console.log('当前任务', name, '的进度是:', res.progress) })
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
这里是我的调用,我想onProgressUpdate知道上传的进度
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
理顺一点。
promise是单个完成状态,只会触发一次的。进度是一个过程,所以要么是把上传任务存起来,要么是把上传进度存起来,供查询。
const process = {} // 存上传进度 const tasks = {} // 存上传任务 static uploadFile(id, name, path, token){ return new Promise(reslove, reject) { let task = wx.uploadFile({ success (res) { reslove(res) } }) task.onProgressUpdate(res => { process[name] = res // 存起来 console.log('当前任务', name, '的进度是:', res.progress) }) tasks[name] = task // 存起来 } } // 根据 name 查询当前上传的进度 function checkProgress(name) { return process[name] || {} } ========= // 实际上传调用的地方 FileRequest.uploadFile(id, '微盟解决方案.zip').then(res => { console.log('文件:', '微盟解决方案.zip', '上传成功!') }) // 自行根据需要在某个时刻去查询上传进度。 let timer = setInterval(function(){ let progress = checkProgress('微盟解决方案.zip') if(progress.process >= 100) { clearInterval(timer) } }, 1000) // 读取一个任务,查进度。 多次 onProgressUpdate 需要注意是否被覆盖。 tasks['微盟解决方案.zip'].onProgressUpdate(res => { console.log('当前任务', name, '的进度是:', res.progress) })这里是我的调用,我想onProgressUpdate知道上传的进度