we-req
Version:
weReq是基于微信小程序的 wx.request的高级封装,提供全局和外部拦截器的管理,支持自动登录等功能,旨在简化微信小程序网络请求的处理流程,提升开发者的使用体验。
39 lines (32 loc) • 811 B
text/typescript
export interface fulfilled<T = any> {
(val: T): T | Promise<T>
}
export interface Rejected {
(error: any): any
}
interface Interceptor<T> {
fulfilled?: fulfilled<T>
rejected?: Rejected
}
export default class InterceptorManager<T> {
private readonly interceptors: Array<Interceptor<T> | null>
constructor() {
this.interceptors = []
}
use(fulfilled?: fulfilled<T>, rejected?: Rejected): number {
this.interceptors.push({ fulfilled, rejected })
return this.interceptors.length - 1
}
forEach(fn: (interceptor: Interceptor<T>) => void): void {
this.interceptors.forEach((interceptor) => {
if (interceptor !== null) {
fn(interceptor)
}
})
}
eject(id: number): void {
if (this.interceptors[id]) {
this.interceptors[id] = null
}
}
}