使用taro的网络请求工具时,并没有统一的请求封装工具,这里我来分享一下我的请求工具,可以设置base_url和超时时间,还有响应数据格式处理。
在utils/request.ts中封装请求:
import Taro from '@tarojs/taro';
const TIME_OUT = 60000;
const BASE_URL = 'http://xxxxxxxxxxx.cn:8087';
const request = (options) => {
// 判断是不是完整的地址,不是的话,拼接上baseUrl
let urlPath = '';
if (options.url.indexOf('http') === -1) {
urlPath = BASE_URL + options.url;
} else {
urlPath = options.url;
}
console.log('请求的url是:', urlPath);
return new Promise((resolve, reject) => {
Taro.request({
url: BASE_URL + options.url,
method: options.method || 'GET',
timeout: TIME_OUT,
data: options.data || {},
success(res) {
// 可以根据自己的数据状态处理响应
resolve(res.data);
},
fail(err) {
reject(err);
},
});
});
};
export default request;
在apis/index.ts中引入并封装不同的请求:
import request from '../utils/request'
export default {
getData(data) {
console.log('getUUID')
return request({
url: '/game/gamemgnt',
method: 'get',
data,
})
},
getBigData(data) {
return request({
url: '/game/gamemgnt',
method: 'post',
data,
})
},
getMsgType(params) {
return request({
url: '/message/messageType',
method: 'get',
params,
})
},
deleteMsg(data) {
return request({
url: '/message/delete',
method: 'post',
data,
})
},
}
在页面中引入并使用:
数据也可以正常返回: