feat(demo): hooks useRequest 异步数据管理 (#3447)

This commit is contained in:
luocong2016
2023-12-22 16:50:41 +08:00
committed by GitHub
parent 9e055ad273
commit d6d1120d00
37 changed files with 2357 additions and 65 deletions

View File

@@ -0,0 +1,30 @@
import { isBrowser } from './isBrowser';
import { isDocumentVisible } from './isDocumentVisible';
import { isOnline } from './isOnline';
type Listener = () => void;
const listeners: Listener[] = [];
if (isBrowser) {
const revalidate = () => {
if (!isDocumentVisible() || !isOnline()) return;
for (let i = 0; i < listeners.length; i++) {
const listener = listeners[i];
listener();
}
};
window.addEventListener('visibilitychange', revalidate, false);
window.addEventListener('focus', revalidate, false);
}
export default function subscribe(listener: Listener) {
listeners.push(listener);
return function unsubscribe() {
const index = listeners.indexOf(listener);
if (index > -1) {
listeners.splice(index, 1);
}
};
}