
正文
uni-app 封装 http promise请求,仅提供 post,all,spread 方法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
简单封装一下 uni-app 的请求,因为项目中只用 post 请求,所以只封装了 post 和 all 方法。
更新,新增 spread 方法 2019-11-22 10:37:21
global.http = {
timer: null,
beenLoginPage: false,
post: (url, data, loading) => {
if (loading) {
uni.showLoading({
mask: true
})
}
return new Promise((resolve, reject) => {
uni.request({
url: BaseUrl + url,
method: "POST",
header: {
sessid: getSessid()
},
data,
success: res => {
if (loading) {
uni.hideLoading();
}
if (res.data.code === ) {
$Toast('登录过期,请重新登录!');
removeItem('sessid');
if (http.beenLoginPage) return;
if (http.timer != null) {
clearTimeout(http.timer);
};
http.timer = setTimeout(function() {
http.timer = null;
uni.reLaunch({
url: '/pages/login/login'
})
http.beenLoginPage = true;
setTimeout(() => {
http.beenLoginPage = false;
}, )
}, );
return;
}
if (res.statusCode != || res.data.code != ) {
uni.showToast({
title: res.data.msg || '网络异常',
duration: ,
icon: "none"
})
return;
}
resolve(res);
},
fail(err) {
if (loading) {
uni.hideLoading();
}
$Toast('网络异常!');
reject(err);
}
})
})
},
all: (promise) => {
return Promise.all(promise);
},
spread: function(callback) {
return function wrap(arr) {
callback.apply(null, arr);
};
}
}
2019-11-22 13:09:27
尝试理解 spread 函数
var args = [, , ];
function spread(cb){
return function wrap(arr){
cb.apply(null,arr);
}
}
(spread((x,y,z)=>{
console.log('x->'+x);
console.log('y->'+y);
console.log('z->'+z);
}))(args);







