微信小程序-api请求统一配置

本文介绍了如何在小程序项目中创建wapi/main.js文件,配置API接口统一地址,并扩展Promise的finally方法。通过实例展示了如何使用自定义的request函数发送GET请求并处理数据。重点在于模块的导入与使用,以及数据获取的流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.项目中新建目录wapi/main.js,内容如下:

// 小程序开发api接口统一配置
const API_BASE_URL = 'https://'  // 主域名
let subDomain = ''  // 子域名,没有就等于'',如果你的域名是: https://www.baidu.com/cn 那么这里只要填写 cn

const request = (url, method, data) => {
  let _url = API_BASE_URL + subDomain  + url
  return new Promise((resolve, reject) => {
    wx.request({
      url: _url,
      method: method,
      data: data,
      header: {
        'Content-Type': 'application/json'
      },
      success(request) {
        resolve(request.data)
      },
      fail(error) {
        reject(error)
      },
      complete(aaa) {
        // 加载完成
      }
    })
  })
}
 
/**
 * 小程序的promise没有finally方法,自己扩展下
 */
Promise.prototype.finally = function (callback) {
  var Promise = this.constructor;
  return this.then(
    function (value) {
      Promise.resolve(callback()).then(
        function () {
          return value;
        }
      );
    },
    function (reason) {
      Promise.resolve(callback()).then(
        function () {
          throw reason;
        }
      );
    }
  );
}
 
module.exports = {
  request,
  getOneList: (data) => request('api.tianapi.com/txapi/one/index?key='+ data.key + '&date=' +data.date,'get', data), //ONE一个接口
  getEnglishToday: (data) => request('api.tianapi.com/txapi/everyday/index?key=' + data.key + '&date=' +data.date,'get', data), // 每日英语
}

2.引入使用

//index.js
const TianKey='aaa' //天行数据APPKEY
const WXAPI = require('../../wxapi/main')
const util = require('../../utils/util.js')

Page({
  data: {
    dataList:null,//ONE一句
    englishList:null,//每日英语
    searchDateTime:'',
  },
 
  onLoad: function (data) {
     this.setData({
      searchDateTime: util.formatDate(),
    },
    ()=>{ // 处理时间数据后回调
      this.getDataList()
    })
  },
  
  getDataList:function(){
    let that = this;
    wx.showLoading({
      "title": "加载中"
    });
    const params={
      key:TianKey,
      date: that.data.searchDateTime 
    }              
    WXAPI.getOneList(params).then(function (res) { //获取ONE
      if (res.code == 200) {
        that.setData({
          dataList: res.newslist[0],
        })
      }
    })
    WXAPI.getEnglishToday(params).then(function (res) { //获取每日英语
      if (res.code == 200) {
        that.setData({
          englishList: res.newslist[0],
        }
      }
    })
  },
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

森海北屿 ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值