ky 是一个基于 fetch 的轻量、现代 HTTP 客户端,提供了常用的便捷 API(.get/.post/.json())、超时/重试/钩子(hooks)等

200 阅读1分钟
import ky from 'ky'
npm install ky
# 或 yarn add ky / pnpm add ky



# Hooks(常见用法 & 示例)
`ky` 的 hooks 很灵活,常见用来做自动加 token、401 刷新、统一错误格式化等。


import ky from 'ky';

const api = ky.create({
  prefixUrl: 'https://api.example.com/',
  hooks: {
    beforeRequest: [
      request => {
        // 同步设置 header(也可以从外部 store 读取)
        const token = getAuthToken();
        if (token) request.headers.set('authorization', `Bearer ${token}`);
      }
    ],
    beforeRetry: [
      async ({request, options, error, retryCount}) => {
        // 在重试前刷新 token(示例), 然后修改 headers
        const newToken = await refreshTokenIfNeeded(error);
        if (newToken) options.headers.set('authorization', `Bearer ${newToken}`);
        // 注意:修改 request/options 的方式有细节(见下方“陷阱”)
      }
    ]
  }
});