功能的话,在标题讲出来了,我就不废话了,
代码:
写方法
// url:路径// params:参数// args:其他参数import constant from './constant.js';export default function ghhttp({ url, params = {}, ...args}) { // 增加token Object.assign(args, { token: wx.getStorageSync('token') }) // 所有的请求,header默认携带token let header = args.header || { 'Content-Type': 'application/json', 'token': args.token || '' } //请求的参数 let data = params || {} // 请求的方式 let method = args.method || 'GET' // hideLoading可以控制是否显示加载状态 if (!args.hideLoading) { wx.showLoading({ title: '加载中...', }) } // 如果请求带http的话,则不添加域名 if (!/^(http|https):/.test(url)) { url = `${constant.domain}${url}` } //promise封装请求 return new Promise((resolve, reject) = { wx.request({ url, method, data: params, header, success: (res) = { if (res && res.statusCode == 200) { resolve(res.data); } else { reject(res) } }, fail: (err) = { reject(err) errormessage(); }, complete: (e) = { wx.hideLoading(); } }) }) // function errormessage() { wx.showToast({ title: '请求接口失败', duration: 2000, icon: 'none' }) }}//p.s.之所以纸样,是因为有的朋友喜欢用promise嘛,所以呢,就这样弄了(假装wx.request跟$.ajax一样),
好吧,$.ajax也是有封装promise的,反正,我就是在这儿把wx.request封装了!就对了!
调用
统一调用的api中心
import ghhttp from '../utils/http.js';import regeneratorRuntime from '../utils/runtime.js';class Test { constructor() {} async getsatinApi() { console.log("调用"); let ajax_data1 = await getApp().globalData.ghhttp({ url: 'https://www.apiopen.top/satinApi', params: { type: 1, page: 1 }, }); console.log(ajax_data1); }}let test = new Test();export default test;差不多就是这样了,还是那句话,大家看的七七八八就好了,不懂再留言。
对了,这儿科普下import还有require的区别
遵循规范require 是 AMD规范引入方式import是es6的一个语法标准,如果要兼容浏览器的话必须转化成es5的语法调用时间require是运行时调用,所以require理论上可以运用在代码的任何地方import是编译时调用,所以必须放在文件开头本质require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量import是解构过程,但是目前所有的引擎都还没有实现import,我们在node中使用babel支持ES6,也仅仅是将ES6转码为ES5再执行,import语法会被转码为require反正你们理解为!一个只能再头部调用,一个能再全局调用,嗯,就这样
然后不太明白的留言,心情好的访问下我的github给个星星
案例:github上的一个需要小星星的地址













