返回顶部
首页 > 资讯 > 精选 >微信小程序怎么使用Promise对wx.request()封装
  • 899
分享到

微信小程序怎么使用Promise对wx.request()封装

2023-07-05 11:07:19 899人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“微信小程序怎么使用Promise对wx.request()封装”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序怎么使用Promise对wx.request()封装”文章能帮助大家解决疑惑,下面跟着小编的思路

本文小编为大家详细介绍“微信小程序怎么使用Promise对wx.request()封装”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序怎么使用Promise对wx.request()封装”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

1. 原生wx.request()的缺点

wx.request官网说明

  • 回调地狱,可能会出现多层success套用的情况(用Promise封装解决)

  • 效率低,代码冗杂,每次都要写共同的参数(比如headers,公共的url)

  • 可维护性差,后续查看和改代码不方便,封装后都在同一个文件,一目了然

wx.request({  url: 'example.PHP', //仅为示例,并非真实的接口地址  data: {    x: '',    y: ''  },  header: {    'content-type': 'application/JSON' // 默认值  },  success (res) {    console.log(res.data)  }})

作为一个合格的前端开发,为了代码质量和可维护性(不是因为懒),肯定要对这种代码进行封装,来让我们的代码变得更优雅~~

2. 封装思路

所有的封装思路(无论是组件还是逻辑代码),总结起来一句话就是抽取共性

观察我们的网络请求代码,可以发现,有很多是一样的,如公共请求路径、对响应错误的处理方法、headers参数(如token)
不同的如具体的接口地址、请求类型、请求参数,我们封装的时候把相同的抽取成一个文件,不同的地方再进行传参即可。

3. 具体实现代码

先建一个api文件夹(叫什么都可以,但是为了规范化),在下面新建文件request.js

// ----Http----// api URLconst apiUrl = "https://接口地址:端口";// 公共的请求地址// 封装微信请求方法const request = (params) => {  let url = params.url;  let data = params.data;  let method = params.method;  let header = {    "Content-Type": "application/json"  };  // 鉴权验证,获取登录之后后端返回的token,存在即在头部Authorization写token,具体的看后端需求  if (wx.getStorageSync("token")) {    // header.Authorization = wx.getStorageSync("token");    header.token = wx.getStorageSync("token");  }  return new Promise((resolve, reject) => {    wx.request({      url: apiUrl + url, // api url      method: method, // get/post      data: data, // 请求参数      header: header, // 头部      success(res) {        // 请求成功        // 判断状态码---errCode状态根据后端定义来判断        if (res.statusCode < 399) {          if (res.data.Code === 401) {            wx.showModal({              title: "提示",              content: "请登录",              showCancel: false,              success(res) {                wx.navigateTo({                  url: "/pages/login/login",                });              },            });            reject(res.data);          }          resolve(res.data);        } else {          // 其他异常          switch (res.statusCode) {            case 404:              wx.showToast({                title: '未知异常',                duration: 2000,              })              break;            default:              wx.showToast({                title: '请重试...',                duration: 2000,              })              break;          }          reject("未知错误,请稍后再试");        }      },      fail(err) {        if (err.errMsg.indexOf('request:fail') !== -1) {          wx.showToast({            title: '网络异常',            icon: "error",            duration: 2000          })        } else {          wx.showToast({            title: '未知异常',            duration: 2000          })        }        reject(err);      },      complete() {        wx.hideLoading()      },    });  });};module.exports = {  apiUrl,  request,}

然后再按业务需求,对具体的接口地址进行封装,比如,我这里在api文件夹下再新建一个user.js文件,里面放登录,注册的一些方法,请求类型和请求参数根据接口文档写。

import {  request} from "./request"// 用户相关// 登录export const login = (params) => {  return request({    url: '/user/login',    data: params,    method: 'POST',  })}// 注册export const reGISter = (params) => {  return request({    url: '/user/reg',    data: params,    method: 'POST',  })}

正式在项目中使用:

import {  login} from '../../../api/user'// 点击登录的方法handleLogin(){    login({      name: xxx,      passWord: xxx,    }).then((res) => {      if (res.code == 200) {   // 登录成功之后的处理      } else {// 登录失败的处理      }    }).catch((res) => {})}

读到这里,这篇“微信小程序怎么使用Promise对wx.request()封装”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: 微信小程序怎么使用Promise对wx.request()封装

本文链接: https://lsjlt.com/news/351446.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 微信小程序怎么使用Promise对wx.request()封装
    本文小编为大家详细介绍“微信小程序怎么使用Promise对wx.request()封装”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序怎么使用Promise对wx.request()封装”文章能帮助大家解决疑惑,下面跟着小编的思路...
    99+
    2023-07-05
  • 微信小程序如何使用Promise对wx.request()封装详解(附完整代码)
    目录1. 原生wx.request()的缺点2. 封装思路3. 具体实现代码总结1. 原生wx.request()的缺点 wx.request官网说明 回调地狱,可能会出现多层suc...
    99+
    2023-03-13
    微信小程序封装wx.request() 微信小程序封装请求 微信小程序 wx.request()封装
  • 微信小程序中wx.request如何实现封装
    这篇文章将为大家详细讲解有关微信小程序中wx.request如何实现封装,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。看项目代码时发现了下面几点问题:网络请求都写在Pag...
    99+
    2024-04-02
  • 微信小程序怎么使用百度AI识别接口封装Promise
    本篇内容介绍了“微信小程序怎么使用百度AI识别接口封装Promise”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!百度接口调用封装(Prom...
    99+
    2023-07-05
  • 微信小程序中前端promise封装的示例分析
    这篇文章主要为大家展示了“微信小程序中前端promise封装的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序中前端promise封装的示例分析...
    99+
    2024-04-02
  • 【uniapp&微信小程序】封装uni.request()
    前言         在项目开发过程中,往往需要对请求进行二次封装,这篇文章将对uni.request()进行二次封装,并实现多个环境的请求配置,对请求方式,数据格式等进行封装,将请求做到最简化。 一.封装uni.request() ...
    99+
    2023-09-01
    微信小程序 uni-app 小程序 前端框架
  • 微信小程序使用百度AI识别接口的通用封装Promise详解
    百度AI开放平台 百度AI开放平台是目前市场上主流开放接口平台之一,新用户还可领取免费资源(适合我这种勤俭节约的人),本篇就来介绍如何对百度AI的开放接口进行通用封装。 百度接口调用...
    99+
    2023-05-14
    微信小程序Promise封装接口 微信小程序百度AI识别接口
  • 微信小程序中request接口怎么封装
    这篇文章主要介绍了微信小程序中request接口怎么封装,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。微信小程序 request接口的封装实...
    99+
    2024-04-02
  • 微信小程序中怎么封装request接口
    这篇“微信小程序中怎么封装request接口”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序中怎么封装request...
    99+
    2023-06-30
  • uniapp 微信小程序axios库的封装及使用
    方式一 第一步:安装axios及适配器 安装依赖 需要注意使用uniapp-vue3版本时axios的版本需要0.26.0以下,建议锁版本 npm i axios@0.26.0 axios-miniprogram-adapter&&...
    99+
    2023-09-03
    微信小程序 uni-app 小程序 前端 vue.js
  • 微信小程序如何设置全局请求URL及封装wx.request请求操作
    这篇文章将为大家详细讲解有关微信小程序如何设置全局请求URL及封装wx.request请求操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:app.js:App...
    99+
    2024-04-02
  • 微信小程序封装reu的代码怎么写
    本篇内容介绍了“微信小程序封装reu的代码怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!微信小程序封装reu的代码//封装aJaxva...
    99+
    2023-06-26
  • 怎么把微信小程序异步API为Promise
    本文小编为大家详细介绍“怎么把微信小程序异步API为Promise”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么把微信小程序异步API为Promise”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。准备转化后...
    99+
    2023-06-26
  • 微信小程序中wx-promise-request是什么
    这篇“微信小程序中wx-promise-request是什么”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“微信小程序中wx-promise-request是什么”,小编整理了以下知识点,请大家...
    99+
    2023-06-26
  • 微信小程序如何封装get和post
    这篇“微信小程序如何封装get和post”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序如何封装get和post”文...
    99+
    2023-06-26
  • 【微信小程序】-- 使用 npm 包 - API Promise化(四十二)
    💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &...
    99+
    2023-08-17
    微信小程序 npm 小程序
  • 微信小程序async怎么使用
    在微信小程序中使用async需要遵循以下步骤:1. 将需要执行的异步操作封装在一个Promise对象中。例如,可以使用new Pro...
    99+
    2023-10-20
    微信小程序
  • 微信小程序怎么使用es6-promise.js封装请求与处理异步进程
    这篇“微信小程序怎么使用es6-promise.js封装请求与处理异步进程”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信...
    99+
    2023-06-17
  • 如何封装微信小程序http拦截器
    这篇文章主要为大家展示了“如何封装微信小程序http拦截器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何封装微信小程序http拦截器”这篇文章吧。前言微信小...
    99+
    2024-04-02
  • 微信小程序实现简易封装弹窗
    本文实例为大家分享了微信小程序实现简易封装弹窗的具体代码,供大家参考,具体内容如下 1.建立组件文件夹 2.编写组件内容  <!--index.wxml--> <...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作