下載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,這個親測完美,而且文件大小比其他在都小很多,所以建議大家使用。