// true:开发/测试环境,false:生产环境
var flag = false;
var _baseUrl = '';
if (flag) {
_baseUrl = 'http://xxx/api';
} else {
_baseUrl = 'https://xxx/api';
}
var baseUrl = _baseUrl;
var commonParams = {
url: '',
data: {},
method: 'POST',
header: {
'Content-Type': 'application/x-www-form-urlencoded',
},
dataType: 'json'
};
export const request = (opt) => {
let options = Object.assign({}, commonParams, opt)
let { url, data, method, header, dataType } = options
header["Hyv-SessionId"] = wx.getStorageSync("sessionId") || ""
let _url = baseUrl + url
wx.showLoading({
title: '数据加载...',
})
return new Promise((resolve, reject) => {
wx.request({
url: _url,
data: data,
method: method,
header: header,
dataType: dataType,
success: function (res) {
if (res && res.statusCode == 200 && res.data) {
if (res.data.code == 300000) {
wx.showToast({
title: '您尚未登录或登录信息已过期',
icon: "loading",
success: () => {
wx.navigateTo({ url: '/pages/login' })
}
})
} else {
resolve(res.data)
}
} else {
reject(res)
}
},
fail: function (err) {
wx.showToast({
title: '请求超时',
icon: 'none',
mask: true,
duration: 2000
})
},
complete: function () {
wx.hideLoading()
}
})
})
}
//并发
export const requestAll = (requests) => {
let promiseList = [];
for (let i = 0; i < requests.length; i++) {
let opt = requests[i];
promiseList.push(request(opt,true))
}
var ret = Promise.all(promiseList);
ret.then(e => {
let needLogin = false;
needLogin = e.some(v => {
return v.code == 300000
})
if (needLogin) {
wx.showToast({
title: '您尚未登录或登录信息已过期',
icon: "loading",
success: function success() {
wx.navigateTo({
url: '/pages/login'
});
}
});
}
});
return ret;
}
单独一条请求调用
var ret = await request({
url: '/hotKeywords',
method: "GET"
});
try {
if (ret.code == 200000) {
//...
}
} catch (e) {
console.log(e);
}
并发请求调用
var req1 = {
url: '/getAudioPlayList',
method: "GET",
data:{
size:2
}
};
var req2 = {
url:"/getCollectList/album",
method: "GET",
data:{
size:6
}
};
var req3 = {
url:"/getCollectList/audio",
method: "GET",
data:{
size:2
}
};
var ret = await requestAll([req1,req2,req3],0)
try {
//...
} catch (e) {
console.log(e);
}