let apiUrl = 'https://test.api.zanxiangnet.com/miniapp' let isopen = false // 控制loading const openLoading = () => { if (!isopen) { isopen = true uni.showLoading({ title: '加载中' }); } } const hiddenLoading = () => { isopen = false uni.hideLoading() } /** * */ // interface Props { // url: string, // data?: any, // config?: { // header?: any, // method?: "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "TRACE" | "CONNECT", // responseType?: "text" | "arraybuffer" // }, // backspace?: boolean, // 是否返回上一页 默认否 // isLoading?: boolean, // 是否展示loading // isToast?: boolean // 是否提示 // } export function request(props) { let { url, data, config, method, backspace = false, isLoading = true, isToast = true } = props let _loading = false let reqTimer = null if (isLoading) { reqTimer = setTimeout(() => { openLoading() _loading = true }, 500) } return new Promise((resolve, reject) => { uni.request({ url: `${apiUrl}${url}`, data, method: method || 'GET', success: (res) => { console.log("请求返回数据---》", res) reqTimer && clearTimeout(reqTimer) if (_loading) { hiddenLoading() } if (res.data.code === 500) { uni.showToast({ title: res.data.msg || `${apiUrl}${url}请求错误`, icon: 'none', duration: 2000 }) return } resolve(res.data) }, fail: (err) => { reqTimer && clearTimeout(reqTimer) if (_loading) { hiddenLoading() } reject(`${url}接口调用失败${err}`) } }) }) }