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


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和DOM Interfaces来处理HTML
Oct 09 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
Sep 13 Javascript
JQuery表格内容过滤的实现方法
Jul 05 Javascript
jQuery中attr()方法用法实例
Jan 05 Javascript
浅谈javascript 函数属性和方法
Jan 21 Javascript
angularJS结合canvas画图例子
Feb 09 Javascript
javascript作用域问题实例分析
Jul 13 Javascript
详解Bootstrap插件
Apr 25 Javascript
JavaScript每天必学之基础知识
Sep 17 Javascript
canvas学习之API整理笔记(二)
Dec 29 Javascript
jquery中封装函数传递当前元素的方法示例
May 05 jQuery
layui实现显示数据表格、搜索和修改功能示例
Jun 03 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 日期时间函数的高级应用技巧
2009/10/10 PHP
基于OpenCV的PHP图像人脸识别技术
2009/10/11 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
如何利用预加载优化Laravel Model查询详解
2017/08/11 PHP
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
Angularjs 基础入门
2014/12/26 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
2015/04/16 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
2017/04/19 Javascript
Webpack优化配置缩小文件搜索范围
2017/12/25 Javascript
Bootstrap 中data-[*] 属性的整理
2018/03/13 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
vue+webpack 更换主题N种方案优劣分析
2019/10/28 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
JavaScript 获取滚动条位置并将页面滑动到锚点
2021/02/08 Javascript
Python基础入门之seed()方法的使用
2015/05/15 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
python绘制分布折线图的示例
2020/09/24 Python
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
美国独家设计师眼镜在线光学商店:Glasses Gallery
2017/12/28 全球购物
成功的酒店创业计划书
2013/12/27 职场文书
20年同学聚会感言
2014/02/03 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
林肯就职演讲稿
2014/05/19 职场文书
校运会口号
2014/06/18 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
详解Redis复制原理
2021/06/04 Redis
Redis Cluster集群动态扩容的实现
2021/07/15 Redis
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android