uni-app中 uni.downloadFile 的 onProgressUpdate 方法会提前触发 uni.showLoading
uni-app中 uni.downloadFile 的 onProgressUpdate 方法会提前触发 uni.showLoading
详细问题描述
(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
重现步骤
我已经提供附件
[步骤]
[结果]
[期望]
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]
IDE运行环境说明
[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
[IDE版本号]
[windows版本号]
[mac版本号]
uni-app运行环境说明
[运行端是h5或app或某个小程序?]
app
[运行端版本号]
编译器版本:2.0.1
[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
HBuilderX创建的
[编译模式是老模板模式还是新的自定义组件模式?]
当前项目编译模式:自定义组件模式
App运行环境说明
[Android版本号]
8.0.0
[iOS版本号]
[手机型号]
小米 Mix 2
[模拟器型号]
附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[App安装包或H5地址]
[可重现代码片段]
我已提供附件
联系方式
[QQ]
1741219625
类别 | 信息 |
---|---|
IDE | HBuilderX |
版本号 | 编译器版本:2.0.1 |
项目创建 | HBuilderX创建的 |
更多关于uni-app中 uni.downloadFile 的 onProgressUpdate 方法会提前触发 uni.showLoading的实战教程也可以访问 https://www.itying.com/category-93-b0.html
不是bug,HBuilderX控制台日志传输有延迟。实际上已经100%了。
更多关于uni-app中 uni.downloadFile 的 onProgressUpdate 方法会提前触发 uni.showLoading的实战教程也可以访问 https://www.itying.com/category-93-b0.html
好的 谢谢
牛比!!!的确,我搞了很久很久! 就是已经100了,然后控制台没反应
关于uni.downloadFile的onProgressUpdate提前触发showLoading的问题,这是一个常见的异步时序问题。根据你提供的信息,建议检查以下几点:
-
确保showLoading是在downloadFile的回调中调用,而不是在onProgressUpdate里直接调用
-
推荐使用Promise封装下载逻辑:
const downloadWithLoading = async (url) => {
uni.showLoading({title: '下载中'})
try {
const res = await new Promise((resolve, reject) => {
const task = uni.downloadFile({
url,
success: resolve,
fail: reject
})
task.onProgressUpdate((res) => {
console.log('进度', res.progress)
})
})
// 下载完成处理
} finally {
uni.hideLoading()
}
}