微信小程序工具函数封装
本文实例为大家分享了微信小程序工具函数封装的具体代码,供大家参考,具体内容如下
constformatTime=date=>{
constyear=date.getFullYear()
constmonth=date.getMonth()+1
constday=date.getDate()
consthour=date.getHours()
constminute=date.getMinutes()
constsecond=date.getSeconds()
return[year,month,day].map(formatNumber).join('/')+''+[hour,minute,second].map(formatNumber).join(':')
}
constformatNumber=n=>{
n=n.toString()
returnn[1]?n:'0'+n
}
functionhttp(url,callback){
varthat=this;
wx.request({
url:url,
success:function(res){
callback(res.data.data);
}
})
}
functionprocessMasterData(data){
returndata;
}
functionjiamiParams(obj){
varstr='';
varnewKey=Object.values(obj);
for(vari=0;i>>(32-iShiftBits));
}
functionAddUnsigned(lX,lY){
varlX4,lY4,lX8,lY8,lResult;
lX8=(lX&0x80000000);
lY8=(lY&0x80000000);
lX4=(lX&0x40000000);
lY4=(lY&0x40000000);
lResult=(lX&0x3FFFFFFF)+(lY&0x3FFFFFFF);
if(lX4&lY4){
return(lResult^0x80000000^lX8^lY8);
}
if(lX4|lY4){
if(lResult&0x40000000){
return(lResult^0xC0000000^lX8^lY8);
}else{
return(lResult^0x40000000^lX8^lY8);
}
}else{
return(lResult^lX8^lY8);
}
}
functionF(x,y,z){
return(x&y)|((~x)&z);
}
functionG(x,y,z){
return(x&z)|(y&(~z));
}
functionH(x,y,z){
return(x^y^z);
}
functionI(x,y,z){
return(y^(x|(~z)));
}
functionFF(a,b,c,d,x,s,ac){
a=AddUnsigned(a,AddUnsigned(AddUnsigned(F(b,c,d),x),ac));
returnAddUnsigned(RotateLeft(a,s),b);
}
functionGG(a,b,c,d,x,s,ac){
a=AddUnsigned(a,AddUnsigned(AddUnsigned(G(b,c,d),x),ac));
returnAddUnsigned(RotateLeft(a,s),b);
}
functionHH(a,b,c,d,x,s,ac){
a=AddUnsigned(a,AddUnsigned(AddUnsigned(H(b,c,d),x),ac));
returnAddUnsigned(RotateLeft(a,s),b);
}
functionII(a,b,c,d,x,s,ac){
a=AddUnsigned(a,AddUnsigned(AddUnsigned(I(b,c,d),x),ac));
returnAddUnsigned(RotateLeft(a,s),b);
}
functionConvertToWordArray(string){
varlWordCount;
varlMessageLength=string.length;
varlNumberOfWords_temp1=lMessageLength+8;
varlNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1%64))/64;
varlNumberOfWords=(lNumberOfWords_temp2+1)*16;
varlWordArray=Array(lNumberOfWords-1);
varlBytePosition=0;
varlByteCount=0;
while(lByteCount>>29;
returnlWordArray;
}
functionWordToHex(lValue){
varWordToHexValue="",WordToHexValue_temp="",lByte,lCount;
for(lCount=0;lCount<=3;lCount++){
lByte=(lValue>>>(lCount*8))&255;
WordToHexValue_temp="0"+lByte.toString(16);
WordToHexValue=WordToHexValue+WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
}
returnWordToHexValue;
}
functionUtf8Encode(string){
varutftext="";
for(varn=0;n127)&&(c<2048)){
utftext+=String.fromCharCode((c>>6)|192);
utftext+=String.fromCharCode((c&63)|128);
}else{
utftext+=String.fromCharCode((c>>12)|224);
utftext+=String.fromCharCode(((c>>6)&63)|128);
utftext+=String.fromCharCode((c&63)|128);
}
}
returnutftext;
}
functionrequestLoading(url,params,message){
letpromise=newPromise((resolve,reject)=>{
wx.showNavigationBarLoading()
if(message!=""){
wx.showLoading({
title:message
})
}
vartimestamp=Date.parse(newDate());
timestamp=timestamp/1000;
params['openid']=wx.getStorageSync('openid');
varnewParams=this.objKeySort(params);
newParams['unionid']=wx.getStorageSync('unionid');
newParams['antime']=timestamp;
newParams['key']=this.jiamiParams(newParams);
wx.request({
url:url,
data:newParams,
header:{
'content-type':'application/x-www-form-urlencoded'
},
method:'post',
success:function(res){
wx.hideNavigationBarLoading()
if(message!=""){
wx.hideLoading()
}
if(res.statusCode==200){
resolve(res.data)
}else{
reject(res)
}
},
fail:function(res){
wx.hideNavigationBarLoading()
if(message!=""){
wx.hideLoading()
}
reject('网络出错!')
}
})
})
returnpromise
}
module.exports={
http:http,
formatTime:formatTime,
requestLoading:requestLoading,
tiaozhuan:tiaozhuan,
tiaozhuanAd:tiaozhuanAd,
objKeySort:objKeySort,
jiamiParams:jiamiParams
}
这个工具函数中用promise封装了微信小程序数据请求的方法:单独拿出来(但不能单独使用哦,因为还需要借助上面的一些工具函数)
functionrequestLoading(url,params,message){
letpromise=newPromise((resolve,reject)=>{
wx.showNavigationBarLoading()
if(message!=""){
wx.showLoading({
title:message
})
}
vartimestamp=Date.parse(newDate());
timestamp=timestamp/1000;
params['openid']=wx.getStorageSync('openid');
varnewParams=this.objKeySort(params);
newParams['unionid']=wx.getStorageSync('unionid');
newParams['antime']=timestamp;
newParams['key']=this.jiamiParams(newParams);
wx.request({
url:url,
data:newParams,
header:{
'content-type':'application/x-www-form-urlencoded'
},
method:'post',
success:function(res){
wx.hideNavigationBarLoading()
if(message!=""){
wx.hideLoading()
}
if(res.statusCode==200){
resolve(res.data)
}else{
reject(res)
}
},
fail:function(res){
wx.hideNavigationBarLoading()
if(message!=""){
wx.hideLoading()
}
reject('网络出错!')
}
})
})
returnpromise
}
使用方法:
util1.requestLoading(url,param,"正在加载数据").then(res=>{
if(res.status==1){
letbannerList=res.data
that.setData({
bannerList
});
}
}).catch(()=>{
wx.showToast({
title:'加载数据失败',
})
})
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。