微信小程序利用promise处理异步请求

小程序已经支持Promise了,可以直接使用

不过,小程序的API的参数格式都比较统一,只接受一个object参数,回调都是在这个参数中设置,所以,这为了统一处理提供了便利,写一个工具方法,来完成这样的工作
首先需要引用一个叫bluebird.js的文件;
进入 bluebird官网下载:

然后再写一个JS,里面写工具方法:

下面是prom.js

var Promise = require('./bluebird')
function wxPromisify(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 = {
    wxPromisify: wxPromisify
}

然后需要使用的那个页面的js里引入prom.js:


调用:

getCompanyMsg : function(){},

onLoad:function () {

    var that = this;
    prom.wxPromisify(wx.getStorage) ({
        key: 'company_id',
    }).then(function (res) {
        that.setData({
            companyId: res.data
        });
    }).then(function () {
        prom.wxPromisify(wx.getStorage) ({
            key: 'header',
        }).then(function (res) {
            that.setData({
                header: res.data
            });
        }).then(function () {
            that.getCompanyMsg()
        })
    })
}


你可能感兴趣的:(微信小程序利用promise处理异步请求)