luch-request的使用代码

typescript uniapp 文章 2022-11-29 22:50 759 0 全屏看文

AI助手支持GPT4.0

/**
 * 请求工具
 * 说明: 使用了luch-request作为基础
 * 详细使用可以查看 https://www.quanzhan.co/luch-request/
 */
import Request from 'luch-request'
import type { HttpRequestConfig } from 'luch-request'
import { BASE_URL } from '../config'
import { toast } from '@/tuniao-ui/utils'

export type RequestType<T> = {
  code: number,
  data: T,
  msg: string
}

export default class Http {
  static http: Request = new Request({
    baseURL: BASE_URL
  })

  static request<T>(options: HttpRequestConfig<UniApp.RequestTask>): Promise<T> {
    return new Promise((resolve, reject) => {
      Http.http.request<T>(options).then((res) => {
        // 判断以2(2xx)开头的状态码为正确
        // 异常不要返回到回调中,就在request中处理
        let code = res.statusCode.toString()
        let stateChar = code.charAt(0)
        if (stateChar === '2') {
          resolve(res.data)
        } else {
          Http.handleRequestError(res)
          reject(res)
        }
      }).catch((err) => {
        toast({
          icon: 'none',
          title: '请求失败'
        })
        Http.handleRequestError(err)
        reject(err)
      })
    })
  }

  static handleRequestError(err: any) {
    console.error('[http]请求失败', err)
  }
}


-EOF-

AI助手支持GPT4.0