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


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中继承的一些示例方法与属性参考
Aug 07 Javascript
jqPlot 基于jquery的画图插件
Apr 26 Javascript
innerHTML与jquery里的html()区别介绍
Oct 12 Javascript
javascript编写实用的省市选择器
Feb 12 Javascript
JavaScript声明变量名的语法规则
Jul 10 Javascript
jquery实现的淡入淡出下拉菜单效果
Aug 25 Javascript
window.location.reload 刷新使用分析(去对话框)
Nov 11 Javascript
node学习记录之搭建web服务器教程
Feb 16 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
Jan 17 Javascript
Vue分页器实现原理详解
Jun 28 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
Nov 04 Javascript
小程序自定义模板实现吸顶功能
Jan 08 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的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
js简单网速测试方法完整实例
2015/12/15 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
浅谈javascript中遇到的字符串对象处理
2016/11/18 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
Vue CLI3.0中使用jQuery和Bootstrap的方法
2019/02/28 jQuery
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
2019/09/27 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
Python访问MySQL封装的常用类实例
2014/11/11 Python
用Python创建声明性迷你语言的教程
2015/04/13 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
Python KMeans聚类问题分析
2018/02/23 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
通过shell+python实现企业微信预警
2019/03/07 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
大学四年的个人自我评价
2014/01/14 职场文书
写自荐信的注意事项
2014/03/09 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
技术合作协议书范本
2014/04/18 职场文书
篮球社团活动总结
2014/06/27 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
幼儿园体操比赛口号
2015/12/25 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书