天天看點

簡單封裝一個微信小程式的ajax請求

簡單封裝一個微信小程式的ajax請求

在微信小程式的項目中,會經常用到wx.request請求,一般請求一多起來,就會非常的繁瑣,此時衆多繁瑣的請求封裝到一個js中,順便将微信小程式中已經封裝好的加載層也封裝起來,對性能也有些優化。

建立封裝的js

1.在項目目錄中,建立一個request檔案夾,在request檔案夾下産檢建立一個index.js檔案,

// 定義一個同時發送異步請求代碼的次數
let ajaxTimes=0;

// 異步請求的封裝
export const request=(params)=>{
	// 沒發送一次異步請求,就讓ajaxTimes+1 確定頁面有幾次請求
    ajaxTimes++;
    // 顯示加載層
    wx.showLoading({
        title: "加載中...",
        mask: true
    });
      
    // 定義公共的url 定義前面相同的url  下面拼接起來
    const baseUrl="https://********"
    return new Promise((resolve,reject)=>{
        wx.request({
        	//es6中的擴充運算符
            ...params,
            // 這裡将公共的url和傳過來的url後半段拼接起來
            url:baseUrl+params.url;
            success:(result)=>{
                resolve(result);//傳回成功資料
            },
            fail:(err)=>{
                reject(err);//傳回失敗資料
            },
            // 成功失敗都會執行complete
            complete:()=>{
            	// 這裡的ajaxTimes--是確定一個頁面裡的請求都結束了才關閉加載層
            	// 如果沒有ajaxTimes--和if的判斷,會加載一條請求後就關閉加載層
                ajaxTimes--;
                if(ajaxTimes===0){
                    // 關閉加載層
                    wx.hideLoading();
                }
            }
        })
    })
}
           

使用封裝的請求

1.在需要發送異步請求的js頁面中,引入request/index.js檔案

2.然後就可以使用request方法了

//建立一個方法發送異步請求
getDemoList(){
	request({url:"這裡寫的是公共url後面的url"})
    .then(result=>{
      this.setData({
        Liet:result.list
      })
    })
}
           

PS:好了,這就是微信小程式的一個簡單封裝一個微信小程式的ajax請求