UNPKG

press-next

Version:

Vue3 组件库,支持 Composition API

65 lines (58 loc) 1.71 kB
import { BaseRequest } from '../base/base-request'; import type { IBaseRequestOptions } from '../types'; /** * 预处理,与H5端统一数据格式 * @param param 网络返回的数据 */ function transferData(param: any) { if (param) { let data = param?.data || '{}'; // dataType为'text',一般情况下返回的 res.data 是JSON字符串,需要解析 res.data 为 JSON 对象 // 但不排除特殊情况,所以需要 try/catch 处理 try { data = JSON.parse(data); param.data = data; } catch (e) { } } return param; } /** * 小程序Post请求发送类 */ export class MpRequest extends BaseRequest { constructor(options: IBaseRequestOptions) { super(options); } doSend(param: any): Promise<any> { // 解决京东小程序真机调试返回非Promise的情况 return new Promise((resolve) => { const params = { url: param.url, dataType: param.dataType || 'text', header: param.header, method: param.method ? param.method : 'POST', data: param.reqData, success(res: any) { if (res.statusCode >= 200 && res.statusCode < 300) { const data = transferData(res); resolve(data); } else { // 异常错误 res.data = { r: res.statusCode, }; const data = transferData(res); resolve(data); } }, fail(err: any) { // 一般小程序遇到接口失败(如502)时,没办法走到这里,会走到success const data = transferData(err); resolve(data); }, }; uni.request(params); }); } }