uni-app ajax请求进行封装(待改进)

组件封装(promise) :

uni.addInterceptor("request", {

  // 请求拦截器  拦截器触发

  invoke(res) {

    // if(res.url)

    res.url = "https://pcapi-xiaotuxian-front-devtest.itheima.net" + res.url;

  },

  success(res) {

    console.log(res.data);

  },

  fail(err) {

    console.log(err);

  },

});

type APIResult = {

  code: string;

  msg: string;

  result: string;

};

export const http = {

  get: (url: string, data?: Object, getOption?: UniApp.RequestOptions) => {

    return new Promise((resolve, reject) => {

      uni.request({

        ...(getOption || { url, data }),

        method: "GET",

        success: (res) => {

          // 将值返回出去

          resolve((res.data as APIResult).result as T);

        },

        fail: (err) => {

          reject(err);

        },

      });

    });

  },

  post: (url: string, data?: Object, getOption?: UniApp.RequestOptions) => {

    return new Promise((resolve, reject) => {

      uni.request({

        ...(getOption || { url, data }),

        method: "POST",

        success: (res) => {

          // 将值返回出去

          resolve((res.data as APIResult).result as T);

        },

        fail: (err) => {

          reject(err);

        },

      });

    });

  },

  put: (url: string, data?: Object, getOption?: UniApp.RequestOptions) => {

    return new Promise((resolve, reject) => {

      uni.request({

        ...(getOption || { url, data }),

        method: "PUT",

        success: (res) => {

          // 将值返回出去

          resolve((res.data as APIResult).result as T);

        },

        fail: (err) => {

          reject(err);

        },

      });

    });

  },

};

其他组件使用方法:

http.请求方式('请求数据',{ 请求传参数据:例 a:3})

你可能感兴趣的:(ajax,uni-app,javascript)