A页面,两个子页面B、C。
三个页面都有代码(代表不同的角色role)调用云函数生成小程序码,发现相近时间、页面ABC(不同角色role)调用生成小程序码云函数返回的小程序码存在混淆,已经确认代码角色没有写错,不是必现,目前是个别id会出现。完全退出A页面后,重新进入页面A,错误的那个小程序码,就正常了。
其中A页面调用云函数的js代码
wx.cloud.callFunction({
name: 'getWxacode',
data: {
id: options.id,
role: "worker"
},
})
.then(res => {
var wxacode = wx.arrayBufferToBase64(res.result.wxacode.buffer);
utils.base64src('data:image/jpeg;base64,' + wxacode)
.then(res => {
this.setData({
inviteWorkerWxacodePath: res
});
}).catch(err => {
console.log(err);
})
})
.catch(console.error)
云函数代码
exports.main = async (event, context) => {
let id = event.id;
let role = event.role;
let path = '/pages/index/index?role=' + role + '&id=' + id;
let wxacode = await cloud.openapi.wxacode.get({
path: path,
width: 430
});
return {
wxacode: wxacode
};
}
因base64src中写入文件时文件名相同和微信图片自动缓存机制,解决办法:生成的文件名加入时间戳