微信小程序工具函数封装
本文实例为大家分享了微信小程序工具函数封装的具体代码,供大家参考,具体内容如下
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;n 127)&&(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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。