zoukankan      html  css  js  c++  java
  • 小程序自定义promise封装request请求

       我是封装在uilts文件夹下,尽量减少文件数量;

    /**
    * 自定义post函数,返回Promise
    * +-------------------
    * author: 李先生<17638198892@163.com>
    * +-------------------
    * @param {String} url 接口网址
    * @param {arrayObject} data 要传的数组对象 例如: {name: '李先森', age: 24}
    * +-------------------
    * @return {Promise} promise 返回promise供后续操作
    */
    function reqHttps(reqUrl, reqData, reqType){
    var promise = new Promise((resolve, reject) => {
    //init
    var that = this;
    /*
    //自动添加签名字段到postData,makeSign(obj)是一个自定义的生成签名字符串的函数
    postData.signature = that.makeSign(postData);
    */
    //网络请求
    wx.request({
    url: reqUrl,
    data: reqData,
    method: reqType,
    header: {
    'content-type': 'application/json',
    'X-Bmob-Application-Id': 'd4541dd59bbc2dbd626201672d5c69ca',
    'X-Bmob-REST-API-Key': '80c7719eefed932aacb29bd5dbda4925'
    },
    success: function (res) {//服务器返回数据
    if (res.statusCode == 200) {//res.data 为 后台返回数据,格式为{"data":{...}, "info":"成功", "status":1}, 后台规定:如果status为1,既是正确结果。可以根据自己业务逻辑来设定判断条件
    resolve(res.data.results);
    } else {//返回错误提示信息
    reject(res);
    }
    },
    error: function (e) {
    reject('网络出错');
    }
    })
    });
    return promise;
    }



    const formatTime = date => {
    const year = date.getFullYear()
    const month = date.getMonth() + 1
    const day = date.getDate()
    const hour = date.getHours()
    const minute = date.getMinutes()
    const second = date.getSeconds()

    return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
    }

    const formatNumber = n => {
    n = n.toString()
    return n[1] ? n : '0' + n
    }

    module.exports = {
    formatTime: formatTime,
    reqHttps: reqHttps
    }
     
     
    在调用页面引入  uilts 
      index.js
    var myHttps = require('../../utils/util.js');
    myHttps.reqHttps('https://api2.bmob.cn','','GET').then((res) => {
    console.log('封装后的数据',res)
    }).catch((errMsg)=>{
    console.log(errMsg)
    })
     
     
    完成!
     
  • 相关阅读:
    PHP、asp、aspx、JSP一句话
    Linux 修改时区(PDT修改为CST)
    m0n0防火墙安装配置方法
    kali 使用John破解zip压缩包的密码
    Linux 挂载windows共享文件夹
    博客园添加粒子特效
    wpscan 更新超时报错
    kali 攻击wordpress + trunkey linux wordpress 安装方法
    Kali和Metasploitable2的网络配置
    设计模式之观察者
  • 原文地址:https://www.cnblogs.com/lipuqing180906/p/9711475.html
Copyright © 2011-2022 走看看