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


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的document.all函数使用示例
Dec 30 Javascript
JavaScript整除运算函数ceil和floor的区别分析
Apr 14 Javascript
jquery获取所有选中的checkbox实现代码
May 26 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
Aug 15 Javascript
简单实现Vue的observer和watcher
Dec 21 Javascript
微信小程序 解决swiper不显示图片的方法
Jan 04 Javascript
JavaScript数据结构之链表的实现
Mar 19 Javascript
详解如何在angular2中获取节点
Nov 23 Javascript
解读vue生成的文件目录结构及说明
Nov 27 Javascript
jQuery中each和js中forEach的区别分析
Feb 27 jQuery
微信小程序引入模块中wxml、wxss、js的方法示例
Aug 09 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
Jul 31 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中函数的形参与实参的问题说明
2010/09/01 PHP
php目录拷贝实现方法
2015/07/10 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
PHP微信H5支付开发实例
2018/07/25 PHP
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
2011/09/02 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
jquery读取xml文件实现省市县三级联动的方法
2015/05/29 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
2015/06/04 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
JS路由跳转的简单实现代码
2017/09/21 Javascript
angular2中使用第三方js库的实例
2018/02/26 Javascript
Python中列表元素转为数字的方法分析
2016/06/14 Python
python查看微信好友是否删除自己
2016/12/19 Python
浅谈五大Python Web框架
2017/03/20 Python
快速查询Python文档方法分享
2017/12/27 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
Python进行特征提取的示例代码
2020/10/15 Python
系统管理员的职责包括那些?管理的对象是什么?
2013/01/18 面试题
公司营业员的工作总结自我评价
2013/10/05 职场文书
企业演讲比赛主持词
2014/03/18 职场文书
大学新生军训方案
2014/05/03 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
学前教育专业求职信
2014/09/02 职场文书
民间个人借款协议书
2014/09/30 职场文书
2015年园林绿化工作总结
2015/05/23 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
python实现腾讯滑块验证码识别
2021/04/27 Python