小程序自定義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)
})
 
 
完成!
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM