ant-design/.dumi/hooks/useFetch/index.ts
MadCcc d1f8b500df
perf: better async component (#43982)
* perf: better async component

* feat: useFetch

* chore: code clean

* chore: code clean

* chore: fix lint

* type: enhance
2023-08-03 14:45:51 +08:00

21 lines
507 B
TypeScript

import fetch from 'cross-fetch';
import use from '../use';
import FetchCache from './cache';
const cache = new FetchCache();
const useFetch = <T>(options: string | { request: () => PromiseLike<T>; key: string }) => {
let request;
let key;
if (typeof options === 'string') {
request = () => fetch(options).then((res) => res.json());
key = options;
} else {
request = options.request;
key = options.key;
}
return use(cache.promise<T>(key, request));
};
export default useFetch;