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


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 兼容FF的onmouseenter和onmouseleave的代码
Jul 19 Javascript
Javascript笔记一 js以及json基础使用说明
May 22 Javascript
用Mootools获得操作索引的两种方法分享
Dec 12 Javascript
jQuery插件开发基础简单介绍
Jan 07 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
Oct 08 Javascript
JavaScript中字面量与函数的基本使用知识
Oct 20 Javascript
js实现图片无缝滚动特效
Mar 19 Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
Jan 26 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
Aug 17 Javascript
微信小程序实现图片预览功能
Jan 31 Javascript
vue 的点击事件获取当前点击的元素方法
Sep 15 Javascript
判断“命令按钮”是否被鼠标单击详解
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 下载保存文件保存到本地的两种实现方法
2013/08/12 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
2020/07/19 PHP
javascript 实用的文字链提示框效果
2010/06/30 Javascript
jquery实现excel导出的方法
2013/04/04 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
Javascript实现单例模式
2016/01/24 Javascript
JS常用字符串方法(推荐)
2021/01/15 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
JS交互点击WKWebView中的图片实现预览效果
2018/01/05 Javascript
js推箱子小游戏步骤代码解析
2018/01/10 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
2018/05/17 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
[04:44]DOTA2西游记战队视频彩蛋流出 师徒开黑巧遇林书豪
2016/08/03 DOTA
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
详解Python 协程的详细用法使用和例子
2018/06/15 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
2018/10/29 Python
OpenCV+Python识别车牌和字符分割的实现
2019/01/31 Python
python实现websocket的客户端压力测试
2019/06/25 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
HTML5 语音搜索(淘宝店语音搜素)
2013/01/03 HTML / CSS
Pureology官网:为染色头发打造最好的产品
2019/09/13 全球购物
音乐教学随笔感言
2014/02/19 职场文书
验房委托书
2014/08/30 职场文书
银行奉献演讲稿
2014/09/16 职场文书
企业培训简报范文
2015/07/20 职场文书
解决Go gorm踩过的坑
2021/04/30 Golang
MySql重置root密码 --skip-grant-tables
2022/04/11 MySQL
css3手动实现pc端横向滚动
2022/06/21 HTML / CSS