热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

实例详解微信小程序wx.request的封装

微信小程序|小程序开发wx.request,小程序,封装微信小程序-小程序开发最近自己尝试了一下小程序开发,坑么总是有的,但是我觉得还是request这部分实在是不好看,所以你懂得

微信小程序|小程序开发实例详解微信小程序wx.request 的封装
wx.request,小程序,封装
微信小程序-小程序开发
最近自己尝试了一下小程序开发,坑么总是有的,但是我觉得还是request这部分实在是不好看,所以你懂得,我用Promise 对请求做了个简单封装。本文章所述方法主要针对第三方登录。
flash留言本源码,vscode获取路径,ubuntu ip,安装tomcat软件,sqlite3 数据对比,ping服务插件,手机前端页面用什么框架好,爬虫工程师招聘广州,php 时间排序,顺昌正规seo介绍,淘宝客采集网站哪个好,wap手机网页游戏源码,手机h5网站模板下载lzw
废话不多说直接贴代码:
java ftp服务器源码,ubuntu软件163源,tomcat日志打印在哪里,爬虫获取软件,php 引用文件技巧,沙洋县seo关键词排名优化厂家lzw
业务相关 js
内存数据库 源码,vscode 排序,ubuntu中文更新,epoll tomcat,sqlite分组聚合,公司主页 需要自己购买服务器吗,modal dialog 插件,前端开发框架layui,网络爬虫 下载,php简单入门,贵州华SEO,web新概念网站源码超市,三层网页源代码,flash模板区,扁平化登录页面,asp财务管理系统源码,wince设备驱动程序开发指南lzw

// 获取剩余金额 --- GET 请求无参数 getBalance: function () { api.getBalance().then(data => { let balance = data.data balance.balance = balance.balance.toFixed(2) this.setData({ balance: { ...balance } }) }) }, // 获取昨日消费数据 --- POST 请求,使用 application/x-www-form-urlencoded 传参 getLastCost: function () { let yestoday = util.transDate('', -1) let data = { subAccountIdx: 0, startDay: yestoday, endDay: yestoday, type: 0, business: 0, export: false } api.getLastCost(data, 'application/x-www-form-urlencoded', 'POST').then(data => { let lastCost = data.data.record.totalConsumeMoney lastCost = lastCost.toFixed(2) this.setData({ lastCost: lastCost }) }) }

从上面的代码是业务部分代码,不知道你是否喜欢这种方式呢,接下来就看看 封装方式 和 业务对应的配置 js

使用 Promise 封装 wx.request

我们大部分网站都是用 COOKIE 来维护登录状态的,但是小程序是无法用 COOKIE 来维护登录状态的,那么我们先获取请求头的 COOKIE, 然后将 COOKIE 保存在全局变量当中(相信获取 COOKIE 肯定没问题吧, 这部分就不展示了)

// wx.request 封装var app = getApp() function wxRequest(url, config, resolve, reject) { let { data = {}, cOntentType= 'application/json', method = 'GET', ...other } = {...config} wx.request({ url: url, data: {...data}, method: method, header: { 'content-type': contentType, 'COOKIE': app.globalData.COOKIE // 全局变量中获取 COOKIE }, success: (data) => resolve(data), fail: (err) => reject(err) })}module.exports = { wxRequest: wxRequest}

封装的代码很简单,接下来就是配置代码了

业务对应的配置 js

// 用 import 或者 require 引入模块 import util from '../../../util/util.js'var Promise = require('../../../plugin/promise.js') // 请注意 Promise 要手动引入,内测版是自动引入的// 获取个人信息const API_USERINFO = "https://www.***/get"// 获取剩余金额const API_BALANCE = 'https://www.***/get'// 获取昨日消费数据const API_LASTCOST = 'https://www.***/get'// 获取个人信息事件 function getUserInfo(data, contentType) { var promise = new Promise((resolve, reject) => { util.wxRequest(API_USERINFO, { data, contentType }, resolve, reject) }) // return promise return promise.then(res => { return res.data }).catch(err => { console.log(err) })}// 获取剩余金额事件function getBalance(data, contentType) { var promise = new Promise((resolve, reject) => { util.wxRequest(API_BALANCE, { data, contentType }, resolve, reject) }) // return promise return promise.then(res => { return res.data }).catch(err => { console.log(err) })}// 获取昨日消费数据function getLastCost(data, contentType, method) { var promise = new Promise((resolve, reject) => { util.wxRequest(API_LASTCOST, { data, contentType, method }, resolve, reject) }) // return promise return promise.then(res => { return res.data }).catch(err => { console.log(err) })}module.exports = { getUserInfo: getUserInfo, getBalance: getBalance, getLastCost: getLastCost}

上面的代码看起来像是步骤变多了,但是这样的好处是维护方便,在业务代码里只关注业务,而不用去关注请求的本身,content-type 切换也方便,当然如果你们的传参方式只有一种可以写死更简单一些,作为前端菜鸟的第一篇文章希望能帮助到几个人,最希望大佬们不吝赐教,指点指点。

微信小程序wx.request实现后台数据交互功能分析

小程序开发–网络请求wx.request实例教学

小程序开发–wx.request异步封装实例教学


推荐阅读
author-avatar
聪头丶_505
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有