常见的给请求加 timeout 的代码:
```ts
async function get(url: string, timeout: number) {
const timeoutPromise = new Promise((_, reject) => {
setTimeout(() => reject(new Error("Timeout")), timeout);
});
const fetchPromise = fetch(url)
// 使用Promise.race来竞赛fetch请求和超时Promise
return Promise.race([fetchPromise, timeoutPromise]);
}
```
这代码work,但利用好API可以更简单:
```ts
return fetch(url, { signal: AbortSignal.timeout(timeout) })
```
展开
1