微信小程序使用Promise

微信小程序使用Promise,其实只需要在API方法外层包一个promise就行了。

本文以微信登陆和获取用户信息接口为例。

封装代码:wechat.js

  /** 
  * Promise化小程序接口 
  */  
  class Wechat {  
  /** 
  * 登陆 
  * @return {Promise}  
  */  
  static login() {  
    return new Promise((resolve, reject) => wx.login({ success: resolve, fail: reject }));  
  };  

  /** 
  * 获取用户信息 
  * @return {Promise}  
  */  
  static getUserInfo() {  
    return new Promise((resolve, reject) => wx.getUserInfo({ success: resolve, fail: reject }));  
  };  

  };  

  module.exports = Wechat;  

调用代码:

  let wechat = require('./wechat.js');  
  wechat.login()  
  .then(d => {  
    console.log("登陆", d);  
    return wechat.getUserInfo();  
  })  
  .then(d => {  
    console.log("获取用户信息", d);  
  })  
  .catch(e => {  
    console.log(e);  
  })  

结果

image

如果需要传递参数,比如设置本地数据缓存接口:

 static setStorage(key, value) {  
   return new Promise((resolve, reject) => wx.setStorage({ key: key, data: value, success: resolve, fail: reject }));  
  };
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 了解什么是 Promise 对象 在项目中,会出现各种异步操作,如果一个异步操作的回调里还有异步操作,就会出现回调...
    tomfriwel阅读 30,835评论 9 30
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,885评论 25 709
  • 4月9日那天因为听了我同学导师对她的各种无良行径,非常生气,再加上之前也听过许多类似的事件,顿时引爆了我体内的正义...
    倔强的小脚阅读 216评论 0 0
  • 最近这几天,气温骤变,满满的冷意刺破了天的帷幕。一整天,天都是阴的,没有风,每到黄昏时刻,细雨连绵,可以明显的感知...
    断虹霁雨i阅读 557评论 2 4
  • 文|孟永辉 金融行业与互联网行业的融合是“互联网+”时代人们生活互联网化的一个重要标志,从某种意义上来讲,互联网金...
    产业深观阅读 343评论 0 1