微信小程序 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,这个亲测完美,而且文件大小比其他在都小很多,所以建议大家使用。