微信小程序优化(ES7解决原生API陷入回调地狱)
2021/9/29 14:11:04
本文主要是介绍微信小程序优化(ES7解决原生API陷入回调地狱),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
项目场景:
最近回去维护前段时间写的微信小程序的时候发现一个问题,微信小程序的原生API都是回调函数,那同时使用多个就会陷入回调地狱,代码结构冗杂、难以维护
问题描述:
1.请求业务代码冗杂
2.内置api陷入回调地狱
3.其他…
解决方案:
- util.js
const promisic = function (func) { return function (params = {}) { return new Promise((resolve, reject) => { const args = Object.assign(params, { success: (res) => { resolve(res); }, fail: (error) => { reject(error); } }); func(args); }); }; }; export { promisic };
- http.js
import { config } from "../config/config"; import { promisic } from "./util"; class Http { static async request({ url, data, method, header }) { const res = await promisic(wx.request)({ url: `${config.apiBaseUrl}${url}`, data, method, header }) return res.data } } export { Http }
- config.js
const config = { apiBaseUrl: "https://******/api/v1/", form_header: { "content-type": "application/x-www-form-urlencoded", }, json_header: { "content-type": "application/json", } } export { config }
- network.js
import { config } from "../config/config"; import { Http } from "../utils/http"; class Network { static async getHomeLocationA(zh,mm) { return await Http.request({ url: `admin/admin_login`, method: 'POST', header: config.form_header, data: { zh: zh, mm: mm } }) } } export { Network }
- index.js
import { Network } from "../../model/network"; // pages/index/index.js Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onl oad: async function (options) { const data = await Network.getHomeLocationA('2683070430', '123456789') console.log(data) },
Tip:
因为上述的代码使用代理模式封装请求,原生api支持promise,微信开发者工具不支持部分语法,需要开启增强编译,高版本开发工具直接勾选下面这个选项,增强编译已经合并。
author: KK
time :2021年9月29日13:27:26
flag:7/30
这篇关于微信小程序优化(ES7解决原生API陷入回调地狱)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20微信小程序开发入门指南
- 2024-12-20小程序 createCameraContext() 怎么实现识别条形码功能?-icode9专业技术文章分享
- 2024-11-22微信小程序的接口信息py可以抓到吗?-icode9专业技术文章分享
- 2024-11-22怎样解析出微信小程序二维码带的参数?-icode9专业技术文章分享
- 2024-11-22微信小程序二维码怎样解析成链接?-icode9专业技术文章分享
- 2024-11-22微信小程序接口地址的域名需要怎么设置?-icode9专业技术文章分享
- 2024-11-22微信小程序的业务域名有什么作用-icode9专业技术文章分享
- 2024-11-22微信小程序 image有类似html5的onload吗?-icode9专业技术文章分享
- 2024-11-22微信小程序中怎么实现文本内容超出行数后显示省略号?-icode9专业技术文章分享
- 2024-11-22微信小程序怎么实现分享样式定制和图片定制功能?-icode9专业技术文章分享