微信小程序api二次封装

382 阅读1分钟

微信小程序api二次封装

请求方法(加载中提示和默认路径)

//request.js
let ajaxNum = 0
export const request=(obj)=>{
    ajaxNum++
    wx.showLoading({
        title: '加载中',
        mask:true
      })
    return new Promise((resolve,reject)=>{
        wx.request({
            url: `https://api-hmugo-web.itheima.net/api/public/v1${obj.url}`, 
            header:obj.header||null,
            method:obj.method,
            data: obj.data,
            success (res) {
                resolve(res.data.message)
            },
            fail (err){
                reject(err)
            },
            complete (){
                ajaxNum--
                if(ajaxNum==0){
                    wx.hideLoading()
                }
            }
          })
    })
}

//使用
import {request} from '/request'
request({
            url: "请求路径",
            method: '请求方式',
            data: '参数对象'
        })

原生api改造成Async

// /utils/wxAsync.js
export const showToast = (obj)=>{
    return new Promise((r,g)=>{
        wx.showToast({
            title: obj.title,
            icon: obj.icon,
            duration: 500,
            mask:true
          })
         
    })
}
export const login = ()=>{
    return new Promise((r,g)=>{
        wx.login({
            timeout:10000,
            success (res) {
              r(res)
            },
            fail(err){
                g(err)
            }
          })
         
    })
}
// 使用 (导入和正常使用async/await)