H5W3
当前位置:H5W3 > 其他技术问题 > 正文

【前端问题精选】Axios interceptor 这段 ForEach 函数有什么用?

如下,参数是函数类型的 fn,当条件成立时执行 fn(interceptor),函数是什么功能 ?

interface ResolvedFn<T> {
    (val: T): T | Promise<T>
}

interface RejectedFn {
    (error: any): any
}

interface Interceptor<T> {
    resolved: ResolvedFn<T>
    rejected?: RejectedFn
}

export default class InterceptorManager<T> {
  private interceptors: Array<Interceptor<T> | null>

  constructor() {
      this.interceptors = []
  }

  use(resolved: ResolvedFn<T>, rejected?: RejectedFn): number {
      this.interceptors.push({
          resolved,
          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
      }
  }
}

回答:

队列,拦截器可以多处调用,每个都会入栈,然后当有ajax请求时调用

本文地址:H5W3 » 【前端问题精选】Axios interceptor 这段 ForEach 函数有什么用?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址