运行目环境,微信小程序
用的vue3版本,uniapp的版本是3.0.0-alpha-3050220220719002,CLI创建的项目。
目的是为了,先下载图片到本地临时目录。然后绘图,生成海报。
希望的操作流程就是,进到商品详情,下载商品图片生成海报,然后到下一个商品详情,再次下载新图片,再生成海报。如果客户喜欢,就一直循环下去。
部分代码,没有加任何逻辑。。
下载用这个试过,用Promise包起来,做同步await发起也试过。问题一样。
按钮@click触发
uni.downloadFile({
url: goods.arr.image, //网络图片 https://xxxxx.com/xxx.jpg 这个域名在微信安全白名单内
success: function (res) {
// console.log('生成商品图片成功');
tmpGoodsImagePath= res.tempFilePath;
},
fail: function (err) {
console.log(err);
},
});
然后另外一个方法用来生成海报。
const ctx = uni.createCanvasContext('goodsCanvas', instance);
....
ctx.drawImage(tmpGoodsImagePath, 0, 0, WIDTH, WIDTH);
只要下载成功,生成海报这个就没有问题,正常。。。
但是下载这个。大概率报错:downloadFile:fail createDownloadTask:fail exceed max download connection count 10。
生产、开发环境都一样,开始能下个3-5张图片,然后就下不了了,一直报上面的错误。只能拖时间等,不管他,等个几分钟,半小时,几小时,然后又能下载生成几张海报,然后再次继续报错。
试过建一个微信小程序原生项目。用Promise包起来,用wx.downloadFile循环100次。100次全部成功,
但是在当前项目,同样的代码。不用uni.downloadFile,用wx.downloadFile,也不行,也是报同样的错误。
有人遇到过这情况不?
零充 (作者)
就是看这个提示才奇怪,完全没有并发。。
流程是进入商品详情页,这个时候只是正常的浏览加载图片,没有调用下载。。
只有点击,生成海报按钮才会下载,而且就只下载商品图,然后其他的全是canvas绘图。
所以,我在下载3-5次成功生成海报后,再来点。就不行了,下载失败,并发下载限制10..
如果他告诉我,下载失败,暂存盘已满,这样的话也知道方向,去找怎么清uniapp临时下载目录。但是他提示并发,这就郁闷了,并发数为1啊。
2022-07-22 09:46