中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序項目構建后http請求封裝的示例分析

發布時間:2021-04-01 10:29:04 來源:億速云 閱讀:120 作者:小新 欄目:移動開發

這篇文章將為大家詳細講解有關微信小程序項目構建后http請求封裝的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、http模塊分裝

首先我們為什么要去分裝微信的http模塊呢,我們先看一下微信自帶的http請求它的一個寫法

wx.request({
  url: 'test.php', //僅為示例,并非真實的接口地址
  data: {
    x: '',
    y: ''
  },
  header: {    'content-type': 'application/json' // 默認值
  },
  success (res) {
    console.log(res.data)
  }
})

這種請求方式呢類似我們古老的jquery方式的分裝,我們需要在success的回調函數里面做一些業務操作,這種方式會形成我們的回調地獄問題,同時代碼也不夠直觀,以及代碼過于繁瑣;

接下來我會通過promise的這種方式對于代碼進行分裝,將請求方式做一些簡化

一、項目目錄構建

微信小程序項目構建后http請求封裝的示例分析

在utils目錄下邊創建request.js文件,去做http請求封裝,我們是通過promise這種方式進行封裝,這樣有利于我們對于錯誤的處理,也可以很直觀的查看業務邏輯,封裝示例代碼如下:

/**
 * 
 * @param {String} url 
 * @param {Object} data 
 * @param {String} method 
 * @param {String} header 
 */
function request(url, data={}, method='GET', header="Content-Type: application/json",) {
    return new Promise(function (resolve, reject) {
        wx.request({
            url: url,
            data: data,
            header: header,
            method: method,
            dataType: 'json',
            responseType: 'text',
            success: (res)=>{
                if(res.statusCode === 200) {
                    if (res.data.code === 200) {
                        resolve(res.data)
                    } else {
                        wx.showToast({
                            title: res.data.msg,
                            icon: 'none',
                            image: '',
                            duration: 1500,
                            mask: false,
                            success: (result)=>{
                                resolve(res.data);
                            },
                        });
                    }
                } else {
                   
                }
            },
            fail: (res)=>{
                // 需要我們加上統一的錯誤處理代碼
                reject(res)
            },
            complete: ()=>{}
        });
    }) 
}

// 封裝方法
// 如果對于header有什么特殊的要求,可以在請求參數里面做一些添加,例如后續我們會在headder中加入我們的sessionkey這些內容
// header = {}里面添加header內容
// 這塊是一個簡版的說明
const header = {
    "Content-Type": "application/json",
    // 這個token是微信登錄以后,將token存入在緩存中
    "token": "*****************"
}

const get = function(url, data, header) {
    return request(url, data, 'GET', header);
}

const post = function(url, data, header) {
    return request(url, data, 'POST', header);
}

const del = function(url, data, header) {
    return request(url, data, '', header);
}


module.exports = {
    get,
    post,
    del,
}

二、項目中請求的使用

首先我們在使用的位置引入我們封裝好的http模塊

import webHttp from './utils/request';

接下里我們可以使用我們封裝好的webhttp工具,比之前直接用微信的request請求方式代碼量降低,同時鏈式方式使得邏輯更加清晰

webHttp.get(api.user.info, {
    // nick_name: 
    ...self.globalData.userInfo
}).then((res) => {
    console.log(res);
})

大概上是這樣的一個過程,實際過程中可能根據后端restful api的方式需要對封裝繼續完善,同樣是對于post請求的data參數也有不同的處理,這個需要按照實際情況做出相應的調整,如果本篇文章有幫助到你,歡迎收藏點贊,同樣有什么地方有更好的方式歡迎交流,進步永不停息

關于“微信小程序項目構建后http請求封裝的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

射洪县| 潍坊市| 旌德县| 杭锦旗| 舞钢市| 美姑县| 封丘县| 湘阴县| 呼玛县| 班玛县| 广水市| 蒙城县| 乌兰县| 化州市| 高陵县| 杨浦区| 工布江达县| 长寿区| 大荔县| 哈尔滨市| 朝阳区| 双流县| 吴堡县| 额济纳旗| 澎湖县| 陆良县| 怀远县| 辉县市| 五指山市| 阳谷县| 晋中市| 大埔区| 璧山县| 赫章县| 万山特区| 仲巴县| 文成县| 大足县| 宕昌县| 沾化县| 太谷县|