使用promise封装wx.request()

2023-10-29

1.目录结构

在根目录下创建http目录及api.js文件fetch.js以及http.js文件;

在这里插入图片描述
在根目录下创建env目录,创建index.js配置并导出多个开发环境
在这里插入图片描述

module.exports={
  //开发环境
  Dev:{
    "BaseUrl":"https://www.develep.com"
  },
  //测试环境
  Test:{
    "BaseUrl":"https://www.test.com"
  },
  //生产环境
  Prod:{
    "BaseUrl": "https://api.douban.com"
  }
}

在api.js中统一管理,请求的url地址

module.exports={
  "hot":"/v2/movie/in_theaters",
  "top250": "/v2/movie/top250",
  "detail": "v2/movie/subject"
}

在fetch.js中用promise对wx.request()进行封装

//封装wx.request()网络模块
module.exports=(url,method,data)=>{
  let p=new Promise((resolve,reject)=>{
    wx.request({
      url: url,
      method:method,
      data:Object.assign({},data),
      header:{'Content-Type': 'application/text' },
      success(res){
        resolve(res)
      },
      fail(err){
        reject(err)
      }
    })
  })
  return p;
}

在http.js,根据当前环境,设置相应的baseUrl, 引入fetch中封装好的promise请求,封装基础的get\post\put\upload等请求方法,设置请求体,带上token和异常处理等;
设置对应的方法并导出;

const evn=require('../env/index.js')
const api=require('./api')
const fetch = require('./fetch')


//确定开发环境
let baseUrl=evn.devBaseUrl;
//如果接口需要token鉴权,获取token
let token=wx.getStorageSync('token');

//轮播请求函数
function banner(){
  return fetch(baseUrl+api.banner,'get',{})
}
//list列表函数

//分类接口函数

module.exports={
  banner
}

在全局app.js中导入http,注册到根组件

const http=require('./http/http.js')

// App.config=config[env];
App({
  http, // http.fetch

})

在具体页面导入,并使用;

//获取应用实例
const app = getApp();
Page({
  data: {
   list:[]
  }
onLoad: function () {
    app.http.banner().then((res)=>{
                this.setData({
                    list: res.data.list
        })    })
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用promise封装wx.request() 的相关文章

  • [4G&5G专题-97]:MAC层- 调度 - 上行调度的原理、过程与算法

    目录 第1章 调度概述 1 1 调度概述 1 2 无线资源调度的分类 第2章 上行调度的整体架构与过程 2 1 上行需要调度的信道 2 2 上行数据发送过程 2 3 上行调度架构 2 4 上行调度的输入信息 2 5 上行调度的步骤与过程 2
  • 【客户案例】云联壹云帮助华北电力大学搭建 AI 训练平台

    客户介绍 华北电力大学是教育部直属全国重点大学 是国家 211 工程 和 985 工程优势学科创新平台 重点建设大学 2017 年 学校进入国家 双一流 建设高校行列 重点建设能源电力科学与工程学科群 全面开启了建设世界一流学科和高水平研究
  • 如何制作属于自己的图片马

    前言 图片马是指代码写入后不破坏图片为前提 图片仍可正常打开 详细过程 自定义一个新的文件夹 文件夹里放入三个文件 一张自己喜欢的图片 自定义php代码文件 批处理文件 super png 用文本编辑器打开也没php代码

随机推荐

  • 深度学习基础知识

    深度学习入门者必看 25个你一定要知道的概念如果你还不了解深度学习有多么强大 不妨就从这篇文章开始 https mp weixin qq com s biz MzIzNjc1NzUzMw mid 2247485927 idx 1 sn 60
  • vue diff 双端比较算法

    文章目录 双端指针 比较策略 命中策略四 命中策略二 命中策略三 命中策略一 未命中四种策略 遍历旧节点列表 新增情况一 新增情况二 删除节点 双端比较的优势 双端指针 使用四个变量 oldStartIdx oldEndIdx newSta
  • 微信小程序页面跳转三种方式

    为了不让用户在使用小程序时造成困扰 微信小程序规定页面路径只能是五层 请尽量避免多层级的交互方式 页面跳转的话就涉及到了多个页面层级 第一种 wx navigateTo OBJECT 保留当前页面 跳转到应用内的某个页面 使用wx navi
  • powershell 自动补全

    我在zsh中使用智能提示 zsh autosuggestions已经习惯了 而在windows中的终端默认没有智能提示 很起来不舒服 那么有没有什么替代呢 安装powershell 7 3 我的windows 10默认安装的是powersh
  • CSDN 改变字体颜色

    将字体改变为红色 font color 900 我是编程ID font 设置字体颜色和字号 font face 华文行楷 color red size 5 本字体是华文行楷 红色 5号大小 font 更多字体参见 https blog cs
  • vue+element+table+render+slot

    前言 最新又回忆并且整理下之前的资料 在这里共享下把 主要是element ui框架里面对table的使用 因为element ui不可以像我们iview框架一样可以直接的在表头里面写render函数 我这里把element ui的tabl
  • Java使用EasyExcel导出数据到Excel文件,以及调用接口下载文件

    1 引入EasyExcel 依赖
  • OAM PDU

    MPLS OAM基本概念 MPLS提供一个完全不依赖于任何三层协议或二层协议的OAM机制 在MPLS的数据平面实现以下功能 1确定LSP的连通性 2 衡量网络利用率以及度量网络性能 3 在链路出现缺陷或故障时迅速进行保护倒换 以便根据与客户
  • hping3的使用

    Hping 是面向命令行的 用于生成和解析 TCP IP 协议数据包汇编 分析的开源工具 常见的应用是 扫描端口 伪造地址和洪水攻击 hping3中的参数如下 h help 显示帮助 v version 显示版本 c count 发送数据包
  • APS计划排程系统之下的MRPII、JIT、TOC三种方式对比分析

    1 生产物流计划的制订方式对比 MRPII采用的是集中式的物料计划方式 建立好产品加工程序 在电脑中确定好准确的订单需求和库存量 对各个生产单元传送生产指令 JIT利用的是看板管理控制方式 按照有限能力计划 逐道工序地倒序传递生产中的取货指
  • librecad二次开发

    1 ui 部份 1 增加主菜单 在这里插入图片描述 https img blog csdnimg cn 65e596109caf43a485505ab1b705ea94 png x oss process image watermark t
  • python 视频处理技术_Python玩转视频处理(三):从视频中提取女神片段

    在上一篇中实现了基于人脸识别提取人物片段的功能 但是在实践过程中发现 如果是一部电影 那么提取到的片段太多了 为了找女神的电影片段 还要在辣么多剪辑中苦苦手工筛选 这个不是一个优秀的程序员应该做的 经过一番实践和探索 发现了一个强大的库 叫
  • 通过pyppeteer来爬取今日头条

    import asyncio from pyppeteer import launch async def main browser await launch page await browser newPage await page se
  • ElementUI的form表单验证注意事项

    ElementUI的form表单验证注意事项 1 踩过的坑 记录一下 验证表单时一直提示必填项未填写 实际已经填写了 2 el form的正确使用流程 el form就是最外层的form表单 做验证有三个必填属性 不填写验证就会不正确 re
  • 烧屏现象对OLED屏幕质量的影响:如何保持画面清晰度?

    OLED Organic Light Emitting Diode 屏幕作为一种高品质 高对比度和鲜艳色彩的显示技术 越来越受到消费者的青睐 然而 一些用户可能会担心OLED屏幕烧屏的问题 本文将探讨OLED屏幕烧屏的原因 如何预防烧屏以及
  • 前端常见的面试题整理

    移动端相关 1 移动端1px边框问题的解决方案 华润集团 使用小数写px值 通过媒体查询判断设备的像素比 DRP 根据不同像素比写不同的边框大小 border border 1px solid ccc media screen and we
  • 基于传统检测算法hog+svm实现图像多分类

    直接上效果图 代码仓库和视频演示b站视频005期 到此一游7758258的个人空间 到此一游7758258个人主页 哔哩哔哩视频 代码展示 数据集在datasets文件夹下 运行01train py即可训练 训练结束后会保存模型在本地 运行
  • Layui上传下载实现

    Layui SSM上传下载文件 上传Controller 上传 RequestMapping sc ResponseBody public String sc RequestParam uploadFile MultipartFile fi
  • s20赛季服务器维护,S20赛季迎来重大更新,这些细节你了解吗?

    随着7月9号的S20赛季更新 又一个赛季落下帷幕 本应于6月30号的赛季更新不知为何推迟 好在是官方终于宣布了赛季更新消息 就让我们一起来看看新赛季有哪些改动吧 一代版本一代神 每一个版本总有一些耀眼的英雄随着机制或者装备的改善从而登上热门
  • 使用promise封装wx.request()

    1 目录结构 在根目录下创建http目录及api js文件fetch js以及http js文件 在根目录下创建env目录 创建index js配置并导出多个开发环境 module exports 开发环境 Dev BaseUrl http