wx小程序 用promise 封装wx.request()可以内增拦截器

xiaoxiao2021-03-01  7

个人习惯 将接口独立出来一个JS文件,这个文件配置 接口主域名 测试域名 等接口连接参数 例如:

var url = 'https://www.****.com/****/' var v1 = 'v1' var api:{ $api: { get(url, params) { return this.apiTem(url, params, "GET") }, post(url, params) { return this.apiTem(url, params, "POST") }, apiTem: function (url, params, method) { return new Promise(function (resolve, reject) { wx.request({ url: url, method: method, header: { FR_APPID: app.globalData.extAppid || '', FR_OPEN_ID: app.globalData.openid || '', FR_LOGIN_TICKET: app.globalData.ticket || '' }, data: params, success(res) { resolve(res.data) }, fail(loginData) { reject(res) } }) }) } }, // 获取OPENID jscode2session: `${url + v1}/user/jscode2session.json`, }

在page页去去引用这个API 配置文件

const config = require('../../utils/api.js') //*** //*** //使用 config.$api.post(config.saveAuthWxInfo, { encryptedData: e.detail.encryptedData, iv: e.detail.iv }).then(res => { //成功响应 //可以根据自己需求 针对性的res.code ==200 or !200 的情况进行封装处理 resolve }).catch(res=>{ //失败响应 })

犹豫wx.request会将我们自己后台的响应代码再次封装在他的一层响应状态之内、这样可以只将我们自己公司响应打印给res

转载请注明原文地址: https://www.6miu.com/read-3850024.html

最新回复(0)