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 相关文章推荐
什么是json和jsonp,jQuery json实例详详细说明
Dec 11 Javascript
js 控制页面跳转的5种方法
Sep 09 Javascript
javascript正则表达式使用replace()替换手机号的方法
Jan 19 Javascript
javascript中html字符串转化为jquery dom对象的方法
Aug 27 Javascript
jQuery+json实现的简易Ajax调用实例
Dec 14 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
Dec 04 Javascript
jquery实现用户登陆界面(示例讲解)
Sep 06 jQuery
layui中layer前端组件实现图片显示功能的方法分析
Oct 13 Javascript
详解JS数值Number类型
Feb 07 Javascript
JS重学系列之聊聊new操作符
Mar 04 Javascript
纯javascript实现选择框的全选与反选功能
Apr 08 Javascript
layui复选框限制选择个数的方法
Sep 18 Javascript
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
详细介绍:Apache+PHP+MySQL配置攻略
2006/09/05 PHP
PHP代码审核的详细介绍
2013/06/13 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
PHP数组相关函数汇总
2015/03/24 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
2012/03/10 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
2013/01/15 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
2015/01/28 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
Javascript 调用 ActionScript 的简单方法
2016/09/22 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
Node登录权限验证token验证实现的方法示例
2020/05/25 Javascript
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python基础教程之数字处理(math)模块详解
2014/03/25 Python
Python注释详解
2016/06/01 Python
Python并发编程协程(Coroutine)之Gevent详解
2017/12/27 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
2018/11/30 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
2019/07/16 Python
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
优秀毕业生求职推荐信范文
2013/11/21 职场文书
应届毕业生求职信范文
2013/12/18 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
社团活动总结报告
2014/06/27 职场文书
反洗钱宣传活动总结
2014/08/26 职场文书
办理信用卡工作证明
2014/09/30 职场文书
学习三严三实心得体会
2014/10/13 职场文书
工作年限证明模板
2015/06/15 职场文书
2016年庆祝六一儿童节活动总结
2016/04/06 职场文书