Skip to content

FetchRequestor

基于 Fetch API 的请求器实现。

安装

bash
npm install @ureq/core @ureq/impl-fetch

基础用法

typescript
import { Request } from '@ureq/core';
import { FetchRequestor } from '@ureq/impl-fetch';

const request = new Request(new FetchRequestor());

配置选项

FetchRequestorConfig

typescript
interface FetchRequestorConfig {
  baseURL?: string;
  headers?: Record<string, string>;
  timeout?: number;
}

baseURL

API 基础 URL。

typescript
const requestor = new FetchRequestor({
  baseURL: 'https://api.example.com'
});

headers

默认请求头。

typescript
const requestor = new FetchRequestor({
  headers: {
    'Content-Type': 'application/json',
    'X-Custom-Header': 'value'
  }
});

timeout

请求超时时间(毫秒)。

typescript
const requestor = new FetchRequestor({
  timeout: 5000  // 5 秒超时
});

完整示例

typescript
import { Request } from '@ureq/core';
import { FetchRequestor } from '@ureq/impl-fetch';

const request = new Request(
  new FetchRequestor({
    baseURL: 'https://api.example.com',
    headers: {
      'Content-Type': 'application/json'
    },
    timeout: 10000
  }),
  {
    retry: { maxRetries: 3 },
    cache: { ttl: 60000 }
  }
);

// 使用
const users = await request.get('/users');

特性

  • ✅ 轻量级,无额外依赖
  • ✅ 支持现代浏览器和 Node.js 18+
  • ✅ 原生 Promise 支持
  • ✅ 支持 AbortController
  • ✅ 完整的 TypeScript 类型

浏览器兼容性

  • Chrome 42+
  • Firefox 39+
  • Safari 10.1+
  • Edge 14+
  • Node.js 18+

相关

Released under the MIT License.