微信小程序> 微信小程序:3用ansync/await这对混蛋还有可爱的promise来封装wx.request

微信小程序:3用ansync/await这对混蛋还有可爱的promise来封装wx.request

浏览量:1182 时间: 来源:mkmin

功能的话,在标题讲出来了,我就不废话了,

代码:

写方法

// 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上的一个需要小星星的地址

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎