Taro.js 封装 Request 使项目API请求风骚一百倍

补充知识

  1. toLocaleString 方法是用于返回格式化对象后的字符串,该字符串格式因不同语言而不同。可以通过传参决定返回的语言与具体的表现,某些场景下相当有用,语法如下:
object.toLocaleString([locales [, options]]);
  1. toUpperCase() 方法用于把字符串转换为大写。
stringObject.toUpperCase()

核心代码

  1. config
// 请求连接前缀
export const baseUrl = 'https://ms-api.caibowen.net';
  1. request.js
import Taro from '@tarojs/taro';
import {
  baseUrl,
  noConsole
} from '../config';

const request_data = {
  platform: 'wap',
  rent_mode: 2,
};

export default (options = {
  method: 'GET',
  data: {}
}) => {
  return Taro.request({
    url: baseUrl + options.url,
    data: {
      ...request_data,
      ...options.data,
    },
    header: {
      'Content-Type': 'application/json',
    },
    method: options.method.toUpperCase(),
  }).then(res => {
    const {
      statusCode,
      data
    } = res;
    if (statusCode >= 200 && statusCode < 300) {
      if (data.status !== 'ok') {
        Taro.showToast({
          title: `${res.data.error.message}~` || res.data.error.code,
          icon: 'none',
          mask: true,
        });
      }
      return data;
    } else {
      throw new Error(`网络请求错误,状态码${statusCode}`);
    }
  });
};
  1. 页面请求方法模块 service.js
import Request from '../../utils/request';

export const homepage = data =>
  Request({
    url: '/homepage-v3',
    method: 'GET',
    data,
  });

export const product = data =>
  Request({
    url: '/product/filter',
    method: 'GET',
    data,
  });

  1. 页面内使用对应方法
import * as detailApi from './service';

async getGoodsInfo(goodsId) {
    const res = await detailApi.product({
          id: goodsId,
    });
}
posted @ 2020-03-18 22:05  南风S  阅读(458)  评论(0)    收藏  举报