JS中promise化微信小程序api

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 })

您可能感兴趣的文章:

  • node.js中使用q.js实现api的promise化
(0)

相关推荐

  • node.js中使用q.js实现api的promise化

    关于啥是promise以及promise解决的是啥问题,敬请体验node的回调异步编码大法,顺带移步http://wiki.commonjs.org/wiki/Promises/A 看看是咋定义的,在此不再赘述. 这里我们看看怎么用q.js 实现node api的promise. 一.万事开始皆为install 复制代码 代码如下: npm install q 二.标准node style api 的promise化方法 1.使用Q.nfcall 相对于Q.fcall ,Q.nfcall 就是n

  • JS中promise化微信小程序api

    promise化的原因 微信小程序的api用的是对象参数回调模式,很容易造成回调地狱,代码难以阅读,判断,修改 和调试. 微信小程序api示例 // 获取用户信息 wx.getSetting({ success: res => { if (res.authSetting['scope.userInfo']) { // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框 wx.getUserInfo({ success: res => { // 可以将 res 发送给后台解码

  • node.js中PC端微信小程序包解密的处理思路

    目录 小程序的源码在哪里 PC端小程序是怎么被加密的 解密思路 预处理 加密后的头部部分 加密后的尾部部分 再漂亮点 commander chalk 源代码 原来发布在掘金,搬过来好了. 微信小程序在PC端是加密存储的,如果直接打开是看不到什么有用的信息的,需要经过解密才可以看到包内具体的内容.本文使用nodejs实现解密算法,主要涉及到crypto, commander, chalk三个包的使用. 小程序的源码在哪里 PC端打开过的小程序会被缓存到本地微信文件的默认保存位置,可以通过微信PC端

  • 微信小程序API—获取定位的详解

    在微信小程序中,我们可以很方便的通过API接口来获取我们当前的位置,接下来我讲告诉大家微信获取定位的API-wx.getLocation的用法,以及我们通过获取定位,得到当地的位置,天气等信息. <view class='content'> <view class='today'> <view class='info'> <view class='temp'>{{weather.temperature.data}}℃</view> <vie

  • 使用微信小程序API,调用微信的各种内置能力。

    目录 一.WXML 渲染语法 二.客户端数据储存 三.远程数据请求 四.<open-data>组件 五.获取用户个人信息 六.多页面的跳转 七.wx.navigateTo() 微信小程序如何使用小程序API,去调用微信提供的各种内置能力(即微信API).小程序开发框架提供丰富的微信原生API,可以方便的调起微信提供的能力,如获取用户信息,本地存储,支付功能等. 一.WXML 渲染语法 前面说过,小程序的页面结构使用 WXML 语言进行描述. WXML 的全称是微信页面标签语言(Weixin M

  • 微信小程序api列表汇总包括网络API,媒体API,文件API ,微信小程序支付流程,位置API,界面API等

    1)网络 API 列表: wx.request 发起网络请求 wx.uploadFile 上传文件 wx.downloadFile 下载文件 wx.connectSocket 创建 WebSocket 连接 wx.onSocketOpen 监听 WebSocket 打开 wx.onSocketError 监听 WebSocket 错误 wx.sendSocketMessage 发送 WebSocket 消息 wx.onSocketMessage 接受 WebSocket 消息 wx.closeS

  • 微信小程序-API接口安全详解

    一.接口安全的必要性 最近我们公司的小程序要上线了,但是小程序端是外包负责的,我们负责提供后端接口.这就可能会造成接口安全问题.一些别有用心的人可以通过抓包或者其他方式即可获得到后台接口信息,如果不做权限校验,他们就可以随意调用后台接口,进行数据的篡改和服务器的攻击,会对一个企业造成很严重的影响. 因此,为了防止恶意调用,后台接口的防护和权限校验非常重要. 虽然小程序有HTTPs和微信保驾护航,但是还是要加强安全意识,对后端接口进行安全防护和权限校验. 二.小程序接口防护 小程序的登录过程: 小

  • 微信小程序向Java后台传输参数的方法实现

    首先,微信小程序我使用的是微信web开发者工具 想要向后台传输数据,需要在js中写 在微信小程序的官方文档中可以看到一个api叫wx.request它的作用是用来发送https请求的 在js代码中,我们先使用wx.request这个api,它需要我们去写url,这个url其实就是Java代码部署在服务器上运行后的地址,这里我们没有真实服务器,我们使用tomcat去运行后端代码,将这个url复制给微信小程序的url中 我的Java代码在运行时出现一个问题,就是找不到我这个类,一直报404错误,一个

  • 微信小程序通过api接口将json数据展现到小程序示例

    实现知乎客户端的一个重要知识前提就是,要知道怎么通过知乎新闻的接口,来把数据展示到微信小程序端上. 那么我们这一就先学习一下,如何将接口获取到的数据展示到微信小程序上. 1.用到的知识点 <1> wx.request 请求接口资源(微信小程序api中的发起请求部分) <2>swiper 实现轮播图的组件 <3>wx:for 循环语句 <4>微信小程序的基础知识 2.实现原理 首先,先看一下这个请求函数 wx.request({ url: '******',

  • 微信小程序使用第三方库Underscore.js步骤详解

    前言 Underscore.js是一个很精干的库,压缩后只有4KB.Underscore 提供了100多个函数,包括常用的:map.filter.invoke - 当然还有更多专业的辅助函数,如:函数绑定.JavaScript 模板功能.创建快速索引.强类型相等测试等等.弥补了标准库的不足,大大方便了JavaScript的编程. 微信小程序无法直接使用require( 'underscore.js' )进行调用. 微信小程序模块化机制 微信小程序运行环境支持CommoJS模块化,通过module

  • 微信小程序中多个页面传参通信的学习与实践

    前言 微信小程序越来越火,不少公司都在将原生代码转为微信小程序代码.在开发过程中,由于微信小程序wx.navigateBack方法并不支持返回传参,导致一些页面,尤其是从列表页面跳入详情页,用户在详情页改变了状态,返回后无论是否刷新页面,体验都不是很好.在android中,我们一般采用setresult方法来返回参数,或者直接使用rxjava框架或者eventbus框架来解决此类问题. 业务分析 此类需求大概意思是:A页面进入B页面,B页面返回并传值给A. 探索之路 刚开始我想采用一个比较偷懒的

随机推荐