@coderlzw/test-pack
TypeScript icon, indicating that this package has built-in type declarations

1.0.10000002 • Public • Published

FetchRequest 使用说明

import {FetchRequest} from "@coderlzw/request"

const myRequest = new FetchRequest({
    baseURL: '/api',
    timeout: 5000,  // 超时的请求会被取消
    interceptors: {
        requestInterceptor: (request) => {
            // 01、return Promise.reject("不允许请求,请求不会被发送,会进入requestInterceptorCatch");
            // 02、throw new Error("不允许请求,请求不会被发送,会进入requestInterceptorCatch");
            // 03、return request;  这里只能返回request对象,不能返回其他类型
            // 04、默认就是返回request对象
        },
        requestInterceptorCatch: (requestCatch) => {
            // 01、throw new Error(requestCatch.message);
            // 02、return Promise.reject(requestCatch.message); 
            // 03、不允许返回其他类型、默认是 throw new Error(error.message);
        },
        responseInterceptor: (response) => {
            // 自由发挥、默认返回 response
        },
        responseInterceptorCatch: (responseCatch) => {
            // 01、throw new Error(responseCatch.error.message );
            // 02、return Promise.reject(responseCatch.error.message);
            // 03、默认 throw new Error(responseCatch.error.message)
        }
    },
});

export default myRequest;
interface ResponseData<T = any> {
    code: number;
    data: T;
    message: string;
}

interface RequestParams {
    id: number;
}

interface RequestBody {
    name: string;
    age: number;
}

myRequest.get<ResponseData, RequestParams>('/posts', {params: {id: 1}}).then((res) => {
    console.log(res);
}).catch((err) => {
    console.log(err);
});

myRequest.post<ResponseData, RequestBody, RequestParams>('/user', {
    params: {id: 1},
    body: {
        name: "zs",
        age: 20
    }
}).then((res) => {
    console.log(res);
}).catch((err) => {
    console.log(err);
});


myRequest.fetch<ResponseData,RequestParams, RequestBody>("/posts111?id=1", {
    method: "POST",
    params: {
        name: "zhangsan"
    },
    body: {
        name: "zhangsan"
    }
}).then((res) => {
    console.log(res);
}).catch((err) => {
    console.log("FETCH_ERROR=============:", err);
});

Readme

Keywords

Package Sidebar

Install

npm i @coderlzw/test-pack

Weekly Downloads

0

Version

1.0.10000002

License

ISC

Unpacked Size

12.8 kB

Total Files

8

Last publish

Collaborators

  • coderlzw