小程序云开发实现数据库异步操作同步化


Posted in Javascript onMay 18, 2019

写小程序云函数的时候遇到了一个问题,如果只对数据库操作一次的话,可以按照官方样例放到return里面,但是如果需要对数据库进行多次操作的话就不能这样写了,因为对数据库的操作是异步执行的。

刚开始我也想了好长时间,最后才找到解决的办法,就是用promise将异步操作同步化(后来才看到,官网也有)。

下面是我写的一个简单的注册云函数

// 云函数入口文件
const cloud = require('wx-server-sdk')
 
cloud.init()
const db = cloud.database()
const _ = db.command
const result={
 code:'',
 body:''
}
// 云函数入口函数
exports.main = (event, context) => {
 return new Promise((resolve, reject) => {
  db.collection('fan_user').where({
   tel:_.eq(event.tel)
  }).get().then((res)=>{
    if(res.data.length){ //用户已注册
     result.code=400;
     result.body='该账户已注册';
     resolve(result)
    }else{ //用户未注册
      db.collection('fan_user').add({
       data:{
        tel:event.tel,
        password:event.password
       }
      }).then((res)=>{
       result.code=200;
       result.body=res;
       resolve(result)
      })
    }
  })
 })
 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 刷新全集常用代码
Nov 22 Javascript
jquery插件 autoComboBox 下拉框
Dec 22 Javascript
JS实现商品倒计时实现代码
May 03 Javascript
js实现的点击div区域外隐藏div区域
Jun 30 Javascript
jQuery实现的在线答题功能
Apr 12 Javascript
js拖拽功能实现代码解析
Nov 28 Javascript
angular+ionic返回上一页并刷新页面
Aug 08 Javascript
浅谈关于.vue文件中style的scoped属性
Aug 19 Javascript
vue中实现图片压缩 file文件的方法
May 28 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
Nov 18 Vue.js
浅析JavaScript中的事件委托机制跟深浅拷贝
Jan 20 Javascript
vue中axios封装使用的完整教程
Mar 03 Vue.js
微信小程序云开发之数据库操作
May 18 #Javascript
微信小程序云开发如何使用云函数生成二维码
May 18 #Javascript
史上最为详细的javascript继承(推荐)
May 18 #Javascript
微信小程序云开发如何使用npm安装依赖
May 18 #Javascript
vue路由中前进后退的一些事儿
May 18 #Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
May 18 #Javascript
微信小程序云开发 生成带参小程序码流程
May 18 #Javascript
You might like
php文件包含目录配置open_basedir的使用与性能详解
2017/04/03 PHP
js 加载时自动调整图片大小
2008/05/28 Javascript
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
node.js学习总结之调式代码的方法
2014/06/25 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
JS实现的页面自定义滚动条效果
2015/10/26 Javascript
json的使用小结
2016/06/08 Javascript
Canvas实现放射线动画效果
2017/02/15 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
小程序关于请求同步的总结
2019/05/05 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
跟老齐学Python之坑爹的字符编码
2014/09/28 Python
python字典快速保存于读取的方法
2018/03/23 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
Club Monaco加拿大官网:设计师男女服装
2019/09/29 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
函授毕业生自我鉴定
2013/11/06 职场文书
《在大海中永生》教学反思
2014/02/24 职场文书
合同协议书格式
2014/04/18 职场文书
横幅标语大全
2014/06/17 职场文书
2015年个人剖析材料范文
2014/12/29 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
放假通知范文
2015/04/14 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
python 逐步回归算法
2021/04/06 Python
Tomcat用户管理的优化配置详解
2022/03/31 Servers