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


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 相关文章推荐
用js脚本控制asp.net下treeview的NodeCheck的实现代码
Mar 02 Javascript
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
Feb 27 Javascript
Javascript基础教程之if条件语句
Jan 18 Javascript
javascript日期计算实例分析
Jun 29 Javascript
浅谈JavaScript中的作用域和闭包问题
Jul 07 Javascript
Js实现简单的小球运动特效
Feb 18 Javascript
JS拉起或下载app的实现代码
Feb 22 Javascript
学习使用Bootstrap页面排版样式
May 11 Javascript
vue-cli webpack 开发环境跨域详解
May 18 Javascript
Vue中的scoped实现原理及穿透方法
May 15 Javascript
swiper在angularjs中使用循环轮播失效的解决方法
Sep 27 Javascript
JS数组扁平化(flat)方法总结详解
Jun 24 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原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
drupal 代码实现URL重写
2011/05/04 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
PHP字符串word末字符实现大小写互换的方法
2014/11/10 PHP
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
json 实例详细说明教程
2009/10/31 Javascript
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
2009/12/28 Javascript
javascript 事件绑定问题
2011/01/01 Javascript
JS的get和set使用示例
2014/02/20 Javascript
js如何判断用户是在PC端和还是移动端访问
2014/04/24 Javascript
js实现文字在按钮上滚动的方法
2015/08/20 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
微信小程序 定位到当前城市实现实例代码
2017/02/23 Javascript
JavaScript运动框架 解决防抖动问题、悬浮对联(二)
2017/05/17 Javascript
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
axios向后台传递数组作为参数的方法
2018/08/11 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
2019/02/02 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
python避免死锁方法实例分析
2015/06/04 Python
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
python如何定义带参数的装饰器
2018/03/20 Python
使用python PIL库实现简单验证码的去噪方法步骤
2019/05/10 Python
python3使用GUI统计代码量
2019/09/18 Python
浅析使用Python搭建http服务器
2019/10/27 Python
python相对企业语言优势在哪
2020/06/12 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
输入N,打印N*N矩阵
2012/02/20 面试题
2015年部门工作总结范文
2015/03/31 职场文书
同意离婚答辩状
2015/05/22 职场文书
三好学生竞选稿范文
2019/08/21 职场文书