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


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 相关文章推荐
在服务端(Page.Write)调用自定义的JS方法详解
Aug 09 Javascript
网页右下角弹出窗体实现代码
Jun 05 Javascript
js实现select组件的选择输入过滤代码
Oct 14 Javascript
简介JavaScript中getUTCMonth()方法的使用
Jun 10 Javascript
jQuery获取单击节点对象的方法
Jun 02 Javascript
AngularJS中过滤器的使用与自定义实例代码
Sep 17 Javascript
Node.js中常规的文件操作总结
Oct 13 Javascript
微信小程序 教程之WXML
Oct 18 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
Jun 29 Javascript
HTML5开发Kinect体感游戏的实例应用
Sep 18 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
Mar 29 Javascript
JS canvas实现画板和签字板功能
Feb 23 Javascript
微信小程序云开发之数据库操作
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 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
解析php中heredoc的使用方法
2013/06/17 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
javascript 动态生成私有变量访问器
2009/12/06 Javascript
actionscript与javascript的区别
2011/05/25 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
javascript中this的四种用法
2015/05/11 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
浅析JS原型继承与类的继承
2016/04/07 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
react native 获取地理位置的方法示例
2018/08/28 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
2019/11/25 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
Python检测网站链接是否已存在
2016/04/07 Python
python pandas时序处理相关功能详解
2019/07/03 Python
python 图片去噪的方法示例
2019/07/09 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
Python模拟FTP文件服务器的操作方法
2020/02/18 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
python生成word合同的实例方法
2021/01/12 Python
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
JSP&Servlet技术面试题
2015/05/21 面试题
模具设计与制造专业应届生求职信
2013/10/18 职场文书
数学专业推荐信范文
2013/11/21 职场文书
微信营销策划方案
2014/02/24 职场文书
汽车广告策划方案
2014/05/31 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
Python pyecharts绘制条形图详解
2022/04/02 Python