- 不同页面中调用访问数据库的云函数是否也存在异步问题?
同一个页面中调用多个访问数据库的云函数异步问题可以通过将云函数写在回调中解决,难道不同页面的云函数调用也存在异步问题吗? 使用场景: 1.js文件中向数据库users中插入用户信息和num值并将num值加1更新到数据库的count表,点击按钮跳转到2.js文件, 2.js的onload方法中获取到更新后的num-1查出相同num值的用户并渲染到列表中 现在的问题是在users表为空的情况下,点击按钮跳转2.js后列表获取为空,再次重复操作,2.js中获取到的是上次插入的数据,也就是说,2.js中获取的num值是更新前的值,通过打印信息观察到1.js页面的云函数执行一半后,打印了2.js页面的onload方法里的conlose.log信息,之后又打印了1.js里的更新num值的信息。 请各位大佬赐教
2020-02-07 - 关于回调云函数?
wx.cloud.callFunction({ name:'getnum', success:function(res){ wx.cloud.callFunction({ name:'getusers', data{ dep:'dep1' } success:function(res){ wx.cloud.callFunction({ name:'getusers', data{ dep:'dep2' } success:function(res){ .......}) 想请教各位大神,回调云函数是否只能回调一次,如上述代码中第一个getusers可以回调成功,但是第二个getusers回调就会不成功?我的试验结果是,第一个getusers回调能成功返回一条数据,但是第二个getusers回调后返回的数据记录是0,是小程序本身的机理只允许回调一次还是我哪写错了?
2020-02-05 - 关于小程序的用户使用问题?
各位大神,麻烦问下开发的小程序只想在一个微信群中使用,不想别的用户访问使用,了解到有开发版本,但是只能设置15个微信号的访问权限,实际使用人数要大于15个,但是发布后的线上版本所有人又都能访问到,不想使用打开小程序后输入密码才能访问这种方案,有其他更好的方案吗
2020-02-04 - 云函数数据更新的问题?
[图片] 通过点击张三或李四,触发绑定函数,绑定函数中调用了数据库更新的云函数,在该云函数中将数据库users表相应的记录字段选中状态进行更新,现在有个现象,就是在点击前,数据库中张三的选中状态为未选中,点击一下张三,预期数据库中选中状态为选中,但数据库中数据未更新,再次点击张三,通过打印信息观察到数据仍未更新,当点击第三次的时候,数据库中的数据进行了更新,想请教各位大神,这种情况是怎么回事?就是点击每个item3次数据库的数据才会更新 下面是代码: index.js soft_restatus:function(e){ //切换选中状态 var item = this.data.soft_js[e.currentTarget.dataset.index] //console.log(item) item.completed = !item.completed //数据库中对该数据进行更新 var leftCount = this.data.leftCount + (item.completed ? -1 : 1) //调用云函数 var that = this; //getID wx.cloud.callFunction({ name:'getid', data:{ name:item.name }, success:function(res){ //获取_id that.setData({_id:res.result.data[0]._id}) console.log('getid_print') console.log(res.result.data[0]._id) }, fail:console.log, complete:res=>{ console.log(res) } }) wx.cloud.callFunction({ name:'update', data:{ _id:that.data._id, completed:item.completed, }, success:function(res){ console.log('update_print') console.log(that.data._id) console.log(res.result.stats) }, fail:console.log }) this.setData({soft_js:this.data.soft_js,leftCount:leftCount}) }, 云函数代码:getid exports.main = async (event, context) => { //return new Promise((resolve, reject) => { try{ return await db.collection('users').where ({ name:event.name }).get({ success:function(res){ return res } }) }catch(e) { console.log(e) } } 云函数:update exports.main = async (event, context) => { // return new Promise((resolve, reject) => { try{ return await db.collection('users').doc(event._id).update ({ data:{ // name:event.name, completed:event.completed, // _openid:event._openid } }) }catch(e) { console.log(e) } }
2020-02-04 - 关于一个函数中调用了两个云函数的问题?
是这样,想实现云函数数据库users表中某个字段的更新功能,在组件绑定的触发函数中调用了两个云函数,云函数1是获取当前操作item对应数据库记录的_id,云函数2的功能是通过云函数1中获取的_id,去更新对应记录的字段值,实验发现,更新功能时好时坏,有时能更新成功,有时更新不成功,通过在两个云函数中加打印信息,发现调用云函数2数据库更新功能时,_id有时有值,有时为0,那么就说明云函数1的_id返回值有可能在云函数2之后返回,导致调用云函数2时获取不到_id,请问有解决方案吗
2020-02-04