zoukankan      html  css  js  c++  java
  • 微信小程序request(promise)方法封装

    var app = getApp();
    
    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)
        })
      }
    }
    //无论promise对象最后状态如何都会执行
    Promise.prototype.finally = function (callback) {
      let P = this.constructor;
      return this.then(
        value => P.resolve(callback()).then(() => value),
        reason => P.resolve(callback()).then(() => { throw reason })
      );
    };
    
    
    /**
     * 微信请求get方法
     * url
     * data 以对象的格式传入
     */
    function getRequest(url, data) {
      var getRequest = wxPromisify(wx.request)
      return getRequest({
        url: app.globalData.url + url,
        method: 'GET',
        data: data,
        header: {
          'Content-Type': 'application/json'
        }
      })
    }
    
    /**
     * 微信请求post方法封装
     * url
     * data 以对象的格式传入
     */
    function postRequest(url, data) {
      var postRequest = wxPromisify(wx.request)
      return postRequest({
        url: app.globalData.url + url,
        method: 'POST',
        data: data,
        header: {
          "content-type": "application/x-www-form-urlencoded"
        },
      })
    }
    //封装小程序冷更新
    function upDateSmallProgram() {
      wx.getSystemInfo({
        success: function (res) {
          var version = res.SDKVersion.slice(0, 5);
          console.log('res.SDKVersion', res.SDKVersion)
          version = version.replace(/./g, "");
          if (parseInt(version) >= 199) {// 大于1.9.90的版本
            const updateManager = wx.getUpdateManager()
    
            updateManager.onCheckForUpdate(function (res) {
              // 请求完新版本信息的回调
              console.log("9999999", res.hasUpdate)
            })
    
            updateManager.onUpdateReady(function () {
              wx.showModal({
                title: '更新提示',
                showCancel: false,
                content: '版本已更新,请点击确定立即使用!',
                success: function (res) {
                  if (res.confirm) {
                    // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                    updateManager.applyUpdate()
                  }
                }
              })
    
            })
    
            updateManager.onUpdateFailed(function () {
              // 新的版本下载失败
    
            })
          }
        }
      })
    }
    
    module.exports = {
      postRequest,
      getRequest,
      upDateSmallProgram
    }



  • 相关阅读:
    HDU3247 Resource Archiver(AC自动机+BFS+DP)
    POJ2486 Apple Tree(树形DP)
    POJ1699 Best Sequence(AC自动机+状压DP)
    SPOJ287 Smart Network Administrator(最大流)
    POJ3189 Steady Cow Assignment(最大流)
    ZOJ2332 Gems(最大流)
    COGS731 [网络流24题] 最长递增子序列(最大流)
    POJ1947 Rebuilding Roads(树形DP)
    POJ1135 Domino Effect(SPFA)
    SPOJ962 Intergalactic Map(最大流)
  • 原文地址:https://www.cnblogs.com/aishangliming/p/9158784.html
Copyright © 2011-2022 走看看