微信小程序 es6-promise.js封装请求 处理异步进程

下载es6-promise.js置于根目录下的libs文件夹下;

在根目录utils文件夹下新建httpsPromisify.js,即定义封装请求的方法

var Promise = require('../libs/es6-promise.min') 

function httpsPromisify(fn) {  
  return function (obj = {}) {    
    return new Promise((resolve, reject) => {      
      obj.success = function (res) {        
        resolve(res)      
      }      

      obj.fail = function (res) {        
        reject(res)      
      }      

      fn(obj)    
    })  
  }
}

module.exports = {  
  httpsPromisify: httpsPromisify
}

  

调用方法:

var Promisify = require('../../utils/httpsPromisify')

Page({
    ...
    onLoad: function(){
      Promisify.httpsPromisify(wx.request)({
        url: "https://XXXXXXX",
        header: {
          "Content-Type": "application/x-www-form-urlencoded"
        },
        method: "POST",
        data: {
          ...
        }
      }).then(function(res){
         console.log(res)
      })        
    
    },
    ...
})

  

注意:

目前支持promise的第三方库有许多,如$q.js,bluebird.js等等,但是需要注意的是,这些在微信开发工具上可以正常使用,但是到真机上就没有效果了;

所以用es6-Promise.js,这个亲测完美,而且文件大小比其他在都小很多,所以建议大家使用。

 

posted @ 2017-06-08 16:58  FEer_llx  阅读(8142)  评论(1编辑  收藏  举报