promise封装wx.request的方法

上篇文章给大家介绍了使用Promise封装小程序wx.request的实现方法,本文重点给大家介绍promise封装wx.request的方法,具体内容如下所示:

为什么要封装wx.request?

因为我们请求接口时,有时候会请求一个接口的多个api,如果没有使用封装,那么我们编写代码会变得繁琐,并且也会导致性能问题。

封装的话,利于我们编写,并且提高用户体验和便于代码的修改。

对于封装的选择为什么使用promise?

当我们进行微信小程序的编写时,写到wx.request的时候,我想大家一定不陌生这种写法,和$.ajax的写法有相似之处。我们对于$.ajax的封装,想必大家并不陌生,这也就不难让我们联想到promise了。并且我们的微信小程序是支持es6语法,那promise就是一个好得封装选择。

该怎么封装wx.request?

我们找好了封装的理由和工具,那接下来就是针对wx.request这个棘手的东西进行封装了,首先在我们的开发工具中创建好文件

我们用一个大的文件夹将其包裹,在将内容分部处理

首先呢,在我们的fetch.js文件中,我们用promise来对wx.request进行封装:

//promise封装wx.request
    module.exports=(url,data,method)=>{
        //先定义promise
        let promise=new Promise((resolve,reject)=>{
            wx.request({
                url:url,
                data:data,
                method:method,

                //成功时执行
                success(res){
                    resolve(res)
                },

                //失败时执行
                fail(err){
                    reject(err)
                },
    })
    })
                //将promise推出去
                return promise
    }

然后,在我们的api.js文件中,我们可以将所需要请求的东西都放在这里,方便统一管理:

//接口的管理
module.exports={
    "banner":"/h8/home/multidata"
}

最后,在我们的http.js文件中,将其集中起来使用:

//引入文件
    const api=require("./api")
    const fetch=require("./fetch")

//定义路径
    let baseUrl="http://123.207.32.32:8000/api"

//导出内容
    function banner(){
        return fetch(baseUrl+api.banner,{},'get')
    }

    module.exports={
        banner
    }

封装好以后,我们需在全局app.js中引入才可使用:

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

    App({
      http,
    })

在文件中使用:

    //引入app
    const app=getApp()

    Page({
      data: {
       list:[]
      }

    onLoad: function () {
        app.http.banner().then(res)=>{
            this.setData({
                list:res.data.data.banner.list
        })
            }
    }

到此这篇关于promise封装wx.request的方法的文章就介绍到这了,更多相关promise封装wx.request内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用Promise封装小程序wx.request的实现方法

    因为业务需要,每个http请求都要加上一个请求头,所以每次都要写很多重复的代码. 现在尝试把wx.request简单的封装了一下,调用一个request方法,每次请求自动携带header头信息,这样就省事多了,包含了常见的get post put delete 四种请求方法,支持Promise方式调用. 封装代码 class request { constructor() { this._baseUrl = 'https://xxx.com/api'; this._token = wx.getS

  • promise封装wx.request的方法

    上篇文章给大家介绍了使用Promise封装小程序wx.request的实现方法,本文重点给大家介绍promise封装wx.request的方法,具体内容如下所示: 为什么要封装wx.request? 因为我们请求接口时,有时候会请求一个接口的多个api,如果没有使用封装,那么我们编写代码会变得繁琐,并且也会导致性能问题. 封装的话,利于我们编写,并且提高用户体验和便于代码的修改. 对于封装的选择为什么使用promise? 当我们进行微信小程序的编写时,写到wx.request的时候,我想大家一定

  • 小程序封装wx.request请求并创建接口管理文件的实现

    开发小程序,封装有一个简单易用wx.request请求还是很必要的,可以省去大量的维护成本!闲话不多说,直接撸代码. 流程 创建http.js文件,封装wx.request 创建api.js文件,统一管理所有接口 在index.js中调用接口 创建http.js文件,封装wx.request 在utils中创建http.js文件,封装http,代码如下: module.exports = { http(url, method, params) { let token = 'token' // 获

  • 微信小程序设置全局请求URL及封装wx.request请求操作示例

    本文实例讲述了微信小程序设置全局请求URL及封装wx.request请求操作.分享给大家供大家参考,具体如下: app.js: App({ //设置全局请求URL globalData:{ URL: 'https://www.oyhdo.com', }, /** * 封装wx.request请求 * method: 请求方式 * url: 请求地址 * data: 要传递的参数 * callback: 请求成功回调函数 * errFun: 请求失败回调函数 **/ wxRequest(metho

  • 微信小程序 wx.request方法的异步封装实例详解

    wx-promise-request 是对微信小程序 wx.request 方法的异步封装. 解决问题 支持 Promise (使用 es6-promise 库). 管理请求队列,解决 request 最大并发数超过 10 会报错的问题. 下载 npm install wx-promise-request 然后拷贝 dist/index.js 文件到你的小程序项目中. 使用 import {request} from './wx-promise-request'; request({ url:

  • 微信小程序wx.request的简单封装

    这些天团队里开始做小程序开发了,之前没做过,都是第一次,第一次的感觉大家都懂的.周末看了一下小程序项目的代码,在网络请求上发现了一些小问题,最终没忍住想了点办法把request封装了一下.下面来看看吧. 看项目代码时发现了下面几点问题: 网络请求都写在Page里,每个请求都要重复的写wx.request以及一些基础配置: 每个页面里都要处理相同类型的异常: 后端返的http status code为200以外时,并不能直接进入fail对应函数进行处理: 针对这些问题,首先在项目目录里新建了一个a

  • 基于小程序请求接口wx.request封装的类axios请求

    Introduction wx.request 的配置.axios 的调用方式 源码戳我 feature 支持 wx.request 所有配置项 支持 axios 调用方式 支持 自定义 baseUrl 支持 自定义响应状态码对应 resolve 或 reject 状态 支持 对响应(resolve/reject)分别做统一的额外处理 支持 转换请求数据和响应数据 支持 请求缓存(内存或本地缓存),可设置缓存标记.过期时间 use app.js @onLaunch import axios fo

  • 利用promise及参数解构封装ajax请求的方法

    1.前端代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </hea

  • 小程序api实现promise封装过程解析

    这篇文章主要介绍了小程序api实现promise封装过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 微信小程序和支付宝小程序的api封装方法是一样的,都是外部新建一个js,使用module.exports导出,要注意的是,最好使用post请求,虽然get请求没什么不好,主要是好修改.这里使用的MD5进行了token加密,最好还是把md5.js单独写下来(MD5函数js) 代码如下 var app = getApp(); // 引入app

  • 微信小程序wx.request拦截器使用详解

    一. 请求后台的时候,服务端对每一个请求都会验证权限,而前端也需要对服务器返回的特殊状态码统一处理,所以可以针对业务封装请求. 首先我们通过request拦截器在每个请求头里面塞入token等信息,好让后端对请求进行权限验证.并创建一个respone拦截器,当服务端返回特殊的状态码,我们统一做处理,如未登录网络错误等操作. 二. 1.首先了解小程序官方api-wx.request() ,通过示例可以看出wx.request的参数是一个对象,拥有传输地址,传输内容,响应头,成功失败回调函数等属性和

随机推荐