hono自带fetch
- hono 自带的 fetch 或者说原生的 fetch 非常难用,为了针对业务错误统一处理,可选用请求库来替换
使用ky替换
- 参考hono自定义fetch
lib/request.ts
import { message } from 'antd'
import ky from 'ky'
export const api = ky.create({
retry: 0, // 禁用自动重试 (请求出错时 不自动重试 默认会自动重试2次)
hooks: {
/** 请求发起之前的钩子 */
beforeRequest: [
(request: Request) => {
console.log('request', request)
},
],
/** 请求发生 HTTP 错误(例如网络问题、404 等)时调用的钩子 */
beforeError: [
async (error) => {
console.error('error', error)
message.error(error.message)
return error
},
],
},
})
- lib/client.ts
import { api } from '@/app/lib/request'
export const client = hc<AppType>(baseUrl, {
fetch: api,
})