研究了各种大声写的request分装,没有一种是我满意的,最后觉得还是使用原生的Promise比较给力,结合项目需求,自己分装了一套,
在全局变量中定义全局方法,小程序的promise封装 post请求
post: function(url,data){
var promise = new Promise((resolve,reject) =>{
var that = this;
var postData = data;
wx.request({
url:url,
data:postData,
method:'POST',
header:{'content-type':'application/x-www-form-urlencoded'},
success:function(res){
if (res.data.status == 1) {
resolve(res.data.data);
} else {
reject(res.data.info);
}
},
error: function(e){
reject('网络出错');
}
})
});
return promise;
}
页面调用时,
const app = getApp();
app.post('https:www.ypty.com/',data)
.then((res) => {
console.log(res);
})
.catch((errMsg)=>{
console.log(errMsg);
wx.hideLoading();
});
小程序一些很有用的技能:
wx.getStorage({
key: 'token',
success: function (res) {
api.post({
url: 'program/select/login',
data: {
token: res.data
},
success: data => {
if (data.code == 200){
wx.switchTab({
url: '../index/index,
})
wx.showToast({
title: '登陆成功',
icon: 'loading',
duration: 1000
})
}
},
});
}
})
存储时,可以使用同步存储,wx.setStorageSync(key, data),但是我们获取时,往往是为了下一步的操作,所以,使用异步wx.getStorage,这样子不用使用if(){} 来判断该存储是否存在都是可以执行后续操作的