微信小程序封装API网络请求,并使用async和await

首先新建一个js文件 写公共的url

export const request = (params) =>{
  // 定义公共的url
  const baseUrl = 'http:api.zbztb.cn/api/public/v1'
  return new Promise((resolve,reject) =>{
    wx.request({
      ...params,
      url:baseUrl + params.url,
      success:(result)=>{
        resolve(result)
      },
      fail:(err)=>{
        reject(err);
      }
    })
  })
}

发起请求的两种方式

  1. 这是正常的写法
// 获取分类导航数据
getCateList(){
  request((url:"/home/catitems"))
  .then(result =>{
    this.setData({
      catesList: result.data.message
    })
  })
}
  1. 也可以使用es7语法 通过async await来发送请求(需要在开发者工具里勾选ES6转ES5)

小程序目录下新建文件夹 lib/runtime/runtime.js, 将以下代码拷贝进去
点击跳转到代码片段直接复制
在每一个需要使用async语法的页面js文件中 , 都引入以下这行代码, 引入之后不用做任何操作(注: 无法全局引入)

import regeneratorRuntime form '../../lib/runtime/runtime.js'

引入之后就可以直接写async了

async 方法名(){
  const res = await request({url:'/categories'});
  this.Cates = res.data.message;
  // 把接口的数据存入本地储存中
  wx.setStorageSycn('cates,{time:Date.now(),data:this.Cates});

  //左侧菜单数据
  let leftList= this.Cates.map(v => v.cat_name);

  // 右侧内容数据
  let rightContent = this.Cates[0].children;

  this.serData({
    leftMenuList,
    rightContent
  })
}

就是这么简单, 封装后不仅代码简洁了, 而且更利于日后的维护

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值