@icanvas/apis
Version:
这是icanvas的Api功能包
57 lines (56 loc) • 1.56 kB
JavaScript
/**
* 模拟axios请求
* @param {String} url 请求路径
* @param {Object} data 请求参数
* @param {Boolean} base 是否跳过附带默认参数
* @return {Promise}
*
* 打包方式为wxgame时
* 增加方法download 下载资源
* @param {String} url 资源路径
* @param {String} filePath 本地路径
* @param {Function} callback 下载进度回调
* @return {Promise}
*/
let Req = {
baseURL: '', //全局请求路径
baseData: {}, //全局附加参数
};
if (ENV.core == 'wxgame') {
['post', 'get'].forEach(method => {
Req[method] = (url, data, base = false) => {
if (!base) {
url = Req.baseURL + url;
data = Object.assign({}, Req.baseData, data);
}
return new Promise(function(success, fail) {
wx.request({ method, data, url, success, fail });
}).then(res => {
console.log(res);
if (res.statusCode == 200) {
if (res.data.code == 200) return res.data.data;
return res.data;
}
return Promise.reject('接口请求失败');
});
};
});
Req.download = (url, filePath, callback) => {
return new Promise(function(success, fail) {
let task = wx.downloadFile({ url, filePath, success, fail });
if (callback) task.onProgressUpdate(callback);
});
};
} else {
let axios = require('axios');
['post', 'get'].forEach(method => {
Req[method] = (url, data, base = false) => {
if (!base) {
url = Req.baseURL + url;
data = Object.assign({}, Req.baseData, data);
}
return axios({ method, data, url }).catch(e => console.warn(e));
};
});
}
export default Req;