小程序自定义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)
})
 
 
完成!
 
posted @ 2018-09-27 09:45  heart中的烦恼哟  阅读(1052)  评论(0编辑  收藏  举报