JS中promise化微信小程序api


Posted in Javascript onApril 12, 2018

promise化的原因

微信小程序的api用的是对象参数回调模式,很容易造成回调地狱,代码难以阅读,判断,修改 和调试.

微信小程序api示例

// 获取用户信息
  wx.getSetting({
   success: res => {
    if (res.authSetting['scope.userInfo']) {
     // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
     wx.getUserInfo({
      success: res => {
       // 可以将 res 发送给后台解码出 unionId
       this.globalData.userInfo = res.userInfo
      }
     })
    }
   }
  })

可以看出两层的时候,代码就很别扭了

promise化小程序

编写一个可以promise小程序api的公用函数

function promisify (method, options = {}) {
 return new Promise((resolve, reject) => {
  // 将options对象赋值 然后再传给下面调用的方法中
  options.success = resolve
  options.fail = err => {
   reject(err)
  }
  wx[method](options)
 })
}

使用示例

传递的额外参数通过对象解构方式传递

promisify('getUserInfo')
 .then((res) => console.log(res))
 .catch((err) => {console.error(err)})

promisify('navigateTo', { url })
Javascript 相关文章推荐
javascript String 的扩展方法集合
Jun 01 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
Mar 27 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
Mar 18 Javascript
javacript使用break内层跳出外层循环分析
Jan 12 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
Sep 02 Javascript
JavaScript脚本判断蜘蛛来源的方法
Sep 22 Javascript
基于jquery实现无限级树形菜单
Mar 22 Javascript
判断数组的最佳方法(推荐)
Oct 11 Javascript
jQuery弹出窗口打开链接的实现代码
Dec 24 Javascript
详解Vue2.x-directive的学习笔记
Jul 17 Javascript
jQuery实现表格隔行换色
Sep 01 jQuery
JQueryDOM之样式操作
Mar 27 jQuery
vue配置请求本地json数据的方法
Apr 11 #Javascript
jQuery实现判断上传图片类型和大小的方法示例
Apr 11 #jQuery
JS实现的合并多个数组去重算法示例
Apr 11 #Javascript
JS实现的JSON数组去重算法示例
Apr 11 #Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
Apr 11 #jQuery
JS常用的几种数组遍历方式以及性能分析对比实例详解
Apr 11 #Javascript
node结合swig渲染摸板的方法
Apr 11 #Javascript
You might like
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
js 鼠标拖动对象 可让任何div实现拖动效果
2009/11/09 Javascript
FileUpload 控件 禁止手动输入或粘贴的实现代码
2010/04/07 Javascript
jquery获取一组checkbox的值(实例代码)
2013/11/04 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
对 jQuery 中 data 方法的误解分析
2014/06/18 Javascript
ExpressJS入门实例
2015/01/14 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
使用node+vue.js实现SPA应用
2016/01/28 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
2016/06/14 Javascript
Js 获取、判断浏览器版本信息的简单方法
2016/08/08 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
vue实现点击按钮下载文件功能
2019/10/11 Javascript
Vue 构造选项 - 进阶使用说明
2020/08/14 Javascript
在windows系统中实现python3安装lxml
2016/03/23 Python
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
python修改字典键(key)的方法
2019/08/05 Python
python保留格式汇总各部门excel内容的实现思路
2020/06/01 Python
新手学python应该下哪个版本
2020/06/11 Python
python读取图像矩阵文件并转换为向量实例
2020/06/18 Python
Python实现弹球小游戏
2020/08/01 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
教师年终个人自我评价
2013/10/04 职场文书
运动会表扬稿
2015/01/16 职场文书
工作保证书
2015/01/17 职场文书
教务处干事工作总结
2015/08/14 职场文书
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP
Java Shutdown Hook场景使用及源码分析
2021/06/15 Java/Android