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


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 select操作控制方法小结
May 26 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
May 28 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
Feb 03 Javascript
JavaScript图片轮播代码分享
Jul 31 Javascript
Jquery ajax基础教程
Nov 20 Javascript
jQuery 选择器(61种)整理总结
Sep 26 Javascript
js实现简单的选项卡效果
Feb 23 Javascript
详解vue模拟加载更多功能(数据追加)
Jun 23 Javascript
一个简易的js图片轮播效果
Jul 22 Javascript
基于vue中css预加载使用sass的配置方式详解
Mar 13 Javascript
Bootstrap实现省市区三级联动(亲测可用)
Jul 26 Javascript
详解TypeScript的基础类型
Feb 18 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延迟静态绑定示例分享
2014/06/22 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
Laravel5框架添加自定义辅助函数的方法
2018/08/01 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
2019/07/15 PHP
javascript中的几个运算符
2007/06/29 Javascript
jquery插件之easing 动态菜单
2010/08/21 Javascript
js列举css中所有图标的实现代码
2011/07/04 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
Javascript this 关键字 详解
2014/10/22 Javascript
JS获得一个对象的所有属性和方法实例
2017/02/21 Javascript
微信小程序 支付功能开发错误总结
2017/02/21 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
jquery检测上传文件大小示例
2020/04/26 jQuery
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
Python中使用Inotify监控文件实例
2015/02/14 Python
极简的Python入门指引
2015/04/01 Python
Python优先队列实现方法示例
2017/09/21 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
HTML5中的postMessage API基本使用教程
2016/05/20 HTML / CSS
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
小学教师的自我评价范例
2013/10/31 职场文书
消防安全汇报材料
2014/02/08 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
大学校务公开实施方案
2014/03/31 职场文书
小学数学课后反思
2014/04/23 职场文书
不同意离婚上诉状
2015/05/23 职场文书
2015暑假假期总结
2015/07/13 职场文书
大学毕业典礼致辞
2015/07/29 职场文书
让文件路径提取变得更简单的Python Path库
2021/05/27 Python
python关于集合的知识案例详解
2021/05/30 Python