小程序request请求用promise公共方法以及调用
程序员文章站
2022-04-14 11:21:49
// 1.方法:const baseUrl = 'https://api.it120.cc';// 配置接口请求的公共方法const http =({url ='',param ={},method='',header={}}={}) =>{ wx.showLoading({ title: '请求中,请耐心等待...', }); let timeStart = Date.now(); return new Promise((resolve,reject)=&g...
// 1.方法:
const baseUrl = 'https://api.it120.cc';
// 配置接口请求的公共方法
const http =({url ='',param ={},method='',header={}}={}) =>{
wx.showLoading({
title: '请求中,请耐心等待...',
});
let timeStart = Date.now();
return new Promise((resolve,reject)=>{
wx.request({
url: getUrl(url),
data:param,
method: method,
header:header,
complete:(res)=>{
wx.hideLoading();//慎用hideLoading,会关闭wx.showToast弹窗
console.log(`耗时${Date.now() - timeStart}`);
if(res.statusCode ==200){//请求成功
resolve(res.data)
}else{
reject(res);
}
}
})
})
}
// 获取url
const getUrl = (url)=>{
if(url.indexOf('://')== -1){
url = baseUrl +url ;
}
return url;
}
// 暴露出去调用的方法
const _api = (url,param ={},method,header)=>{
return http({
url,
param,
method:method?method:'get',
header:header ? header : { "Content-Type": "application/json" },
})
}
** // 方法暴露出去**
module.exports = {
formatTime: formatTime,
api:_api
}
// 2.掉用:
const until = require('../../utils/utils.js')
// 单个请求
until.api('/authorize',param,'post').then(res => {
console.log("authorize:",res);
}).catch(e => {
console.log(e);
wx.showToast({
title: e.data.errMsg,
icon: 'none',
duration: 3000
})
})
// 一个页面多个请求
Promise.all([
api.get('list'),
api.get(`detail/${id}`)
]).then(result => {
console.log(result)
}).catch(e => {
console.log(e)
})
本文地址:https://blog.csdn.net/josnmakechen/article/details/107941207