- 如何根据云数据库的查询结果修改本地js函数的变量?
这是我在一个页面对应的js文件里写的一个函数,预期实现的效果是: 用户在页面点击按钮,执行绑定的initClassNum()。这个函数的逻辑是先调用creatClassNum()生成随机数,再通过查询判断该随机数有没有和云数据库里的重合,重合了的话就再调用creatClassNum(),并再进行判断,直到生成的随机数与云数据库中的不重合为止。最后把该num赋值给页面里的classNumber。 initClassNum: function(){ var num = ''; var result_length = -1; // 查询结果的数组长度,为0表示班级码可以使用,大于0表示重复了 let that = this; do{ // 生成班级码 num = this.creatClassNum(); console.log('生成的班级码', num) // 检查该班级码是否已经存在于云数据库 const db = wx.cloud.database(); db.collection('class').where({ number: num }).get() .then(res =>{ console.log('数据库匹配结果', res.data.length) result_length = res.data.length }) .catch(err=>{ console.error(err) }) }while(result_length != 0); // 将班级码放入页面数据 that.setData({ classNumber: num }) }, 但实际执行过程中我发现循环不会停止......通过console.log(result_length),我发现原因在于result_length = res.data.length并不能更改整个函数里result_length的值,所以result_length一直为-1,循环也一直不会停。。。。。。 请问是什么原因造成的呢?是因为云数据库查询是异步操作的原因吗?还是因为var变量的作用域。。。? 更改的话我又应该改成什么样呢?百思不得其解。。。。
2022-04-25 - wx.base64ToArrayBuffer在低于1.7.0基础库下有Bug
- 当前 Bug 的表现(可附上截图) - 预期表现 - 复现路径 - 提供一个最简复现 Demo 1.7以下的微信,通过使用wx.base64ToArrayBuffer()把data转成arrayBuffer,再通过wx.request发送数据,请求体为{} [图片]
2018-09-10 - 想将SSL证书从一个腾讯云控制台转到另一个腾讯云控制台?
1,我在A腾讯云控制台为我的一个域名S 申请了一个免费的SSL证书。由于SSL证书是在A申请了,该SSL证书在A的状态为已颁发。 2,域名S已经在A的静态托管网站运行了一段时间,已经配置了CNAME。 3,我的目的,是把S转移到新的腾讯云控制台B的静态托管。 4,我的做法: (1),将A的S停用,并删除。 (2),下载S在A中的SSL证书,并上传到B中,这时候SSL在B中的状态为上传托管。 (3),配置B的静态托管的域名,并且根据提示配置CNAME. 但是,却一直提示我CNAME一直配置不成功,失败。 在域名自助诊断中,如下: [图片] 不知道是什么原因。。。求解答。
2020-08-12