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


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 拾碎[三] 使用className属性
Oct 16 Javascript
关于Mozilla浏览器不支持innerText的解决办法
Jan 01 Javascript
javascript使用输出语句实现网页特效代码
Aug 06 Javascript
JavaScript验证Email(3种方法)
Sep 21 Javascript
angularjs 表单密码验证自定义指令实现代码
Oct 27 Javascript
解决IE7中使用jQuery动态操作name问题
Aug 28 jQuery
AngularJS2 与 D3.js集成实现自定义可视化的方法
Dec 01 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
Nov 02 Javascript
如何从头实现一个node.js的koa框架
Jun 17 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
Nov 09 Javascript
VUE项目axios请求头更改Content-Type操作
Jul 24 Javascript
详细介绍Next.js脚手架完整搭建封装
Apr 26 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
测试php连接mysql是否成功的代码分享
2014/01/24 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
PHP生成plist数据的方法
2015/06/16 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
Js的MessageBox
2006/12/03 Javascript
JQuery 小练习(实例代码)
2009/08/07 Javascript
js 自定义个性下拉选择框示例
2013/08/20 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
Bootstrap布局方式详解
2016/05/27 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
2016/12/19 Javascript
基于JavaScript实现复选框的全选和取消全选
2017/02/09 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
python3的url编码和解码,自定义gbk、utf-8的例子
2019/08/22 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
培训主管岗位职责
2014/02/01 职场文书
租房协议书
2014/04/10 职场文书
2014年图书管理员工作总结
2014/12/01 职场文书
大学社团活动总结怎么写
2019/06/21 职场文书
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL
Vue监视数据的原理详解
2022/02/24 Vue.js
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL