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


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 相关文章推荐
Jquery Validation插件防止重复提交表单的解决方法
Mar 05 Javascript
可以用鼠标拖动的DIV实现思路及代码
Oct 21 Javascript
javascript去掉前后空格的实例
Nov 07 Javascript
JQuery+Ajax无刷新分页的实例代码
Feb 08 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
Feb 20 Javascript
JavaScript中Function详解
Feb 27 Javascript
JavaScript中的冒泡排序法
Aug 03 Javascript
JavaScript实现图片轮播组件代码示例
Nov 22 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
Mar 29 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
Jul 06 Javascript
Element Collapse 折叠面板的使用方法
Jul 26 Javascript
vue 图片裁剪上传组件的实现
Nov 12 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 array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
PHP执行linux系统命令的常用函数使用说明
2010/04/27 PHP
简单PHP上传图片、删除图片实现代码
2010/05/12 PHP
destoon安装出现Internal Server Error的解决方法
2014/06/21 PHP
PHP处理JSON字符串key缺少双引号的解决方法
2014/09/16 PHP
php读取远程gzip压缩网页的方法
2014/12/29 PHP
php session的锁和并发
2016/01/22 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
详解PHP 7.4 中数组延展操作符语法知识点
2019/07/19 PHP
跟着JQuery API学Jquery 之二 属性
2010/04/09 Javascript
JavaScript判断窗口是否最小化的代码(跨浏览器)
2010/08/01 Javascript
js中获取事件对象的方法小结
2011/03/13 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
Bootstrap每天必学之滚动监听
2016/03/16 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
2017/09/05 jQuery
angularjs模态框的使用代码实例
2019/12/20 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
2019/10/28 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
工商管理本科毕业生求职信范文
2013/10/05 职场文书
管理站站长岗位职责
2013/11/27 职场文书
缓刑人员的思想汇报
2014/01/11 职场文书
社区包粽子活动方案
2014/01/21 职场文书
母亲追悼会答谢词
2014/01/27 职场文书
幼儿教师师德承诺书
2014/05/23 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
高考学习决心书
2015/02/04 职场文书
离婚案件原告代理词
2015/05/23 职场文书
微信小程序调用python模型
2022/04/21 Python