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


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网页定位详解
Jan 13 Javascript
javascript正则表达式使用replace()替换手机号的方法
Jan 19 Javascript
JQuery显示、隐藏div的几种方法简明总结
Apr 16 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
Aug 07 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
Jan 03 Javascript
javascript从定义到执行 你不知道的那些事
Jan 04 Javascript
jQuery改变form表单的action,并进行提交的实现代码
May 25 Javascript
详谈$.data()的用法和作用
Feb 13 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
Aug 07 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
Oct 20 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
Apr 09 Javascript
jQuery AJAX应用实例总结
May 19 jQuery
微信小程序云开发之数据库操作
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
SONY ICF-SW7600的电路分析
2021/03/02 无线电
基于MySQL体系结构的分析
2013/05/02 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
JS实现让网页背景图片斜向移动的方法
2015/02/25 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
2019/10/16 Javascript
Vuex实现数据共享的方法
2019/12/20 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
python实现最速下降法
2020/03/24 Python
pip install命令安装扩展库整理
2021/03/02 Python
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
芬兰设计商店美国:Finnish Design Shop US
2019/03/25 全球购物
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
机电专业毕业生求职信
2013/10/27 职场文书
个人实习生的自我评价
2014/02/16 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
政协会议宣传标语
2014/10/09 职场文书
创业不要错过,这4种餐饮新模式
2019/07/18 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers
浅谈怎么给Python添加类型标注
2021/06/08 Python
django中websocket的具体使用
2022/01/22 Python