From 600df69aea32732d8dbb6b02d75c8680d03991b7 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Fri, 19 Aug 2022 10:27:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=9B=A0=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E6=B8=85=E7=A9=BA=E8=AE=A1=E6=97=B6=E5=99=A8=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E7=AC=AC=E4=BA=8C=E6=AC=A1=E4=BC=9A=E6=B0=B8?= =?UTF-8?q?=E8=BF=9Cpending?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 相关内容: createAutoMergedRequest --- shared/index.tsx | 7 ++----- shared/redux/hooks/useGroup.ts | 3 ++- shared/redux/hooks/useUserInfo.ts | 13 ------------- shared/utils/request.ts | 3 ++- 4 files changed, 6 insertions(+), 20 deletions(-) diff --git a/shared/index.tsx b/shared/index.tsx index db133432..ce32555e 100644 --- a/shared/index.tsx +++ b/shared/index.tsx @@ -49,6 +49,7 @@ export { useLanguage } from './i18n/language'; // hooks export { createUseStorageState } from './hooks/factory/createUseStorageState'; export { useAvailableServices } from './hooks/model/useAvailableServices'; +export { useUserInfoList } from './hooks/model/useUserInfoList'; export { useUsernames } from './hooks/model/useUsernames'; export { useUserSettings, @@ -182,11 +183,7 @@ export { useGroupTextPanelUnread, } from './redux/hooks/useGroup'; export { useGroupMemberMute } from './redux/hooks/useGroupMemberMute'; -export { - useUserInfo, - useUserId, - useUserInfoList, -} from './redux/hooks/useUserInfo'; +export { useUserInfo, useUserId } from './redux/hooks/useUserInfo'; export { useUnread } from './redux/hooks/useUnread'; export { userActions, diff --git a/shared/redux/hooks/useGroup.ts b/shared/redux/hooks/useGroup.ts index 5310ab56..627c9b2c 100644 --- a/shared/redux/hooks/useGroup.ts +++ b/shared/redux/hooks/useGroup.ts @@ -1,10 +1,11 @@ import { useMemo } from 'react'; +import { useUserInfoList } from '../..'; import { GroupInfo, GroupPanel, GroupPanelType } from '../../model/group'; import type { UserBaseInfo } from '../../model/user'; import { isValidStr } from '../../utils/string-helper'; import { useAppSelector } from './useAppSelector'; import { useUnread } from './useUnread'; -import { useUserId, useUserInfoList } from './useUserInfo'; +import { useUserId } from './useUserInfo'; /** * 获取群组信息 diff --git a/shared/redux/hooks/useUserInfo.ts b/shared/redux/hooks/useUserInfo.ts index 5ad3c7f5..77f72db8 100644 --- a/shared/redux/hooks/useUserInfo.ts +++ b/shared/redux/hooks/useUserInfo.ts @@ -1,5 +1,3 @@ -import { getCachedUserInfo } from '../../cache/cache'; -import { useAsync } from '../../hooks/useAsync'; import type { UserLoginInfo } from '../../model/user'; import { useAppSelector } from './useAppSelector'; @@ -16,14 +14,3 @@ export function useUserInfo(): UserLoginInfo | null { export function useUserId(): string | undefined { return useUserInfo()?._id; } - -/** - * 根据用户id获取用户信息列表 - */ -export function useUserInfoList(userIds: string[]) { - const { value: userInfos = [] } = useAsync(() => { - return Promise.all(userIds.map((userId) => getCachedUserInfo(userId))); - }, [userIds.join(',')]); - - return userInfos; -} diff --git a/shared/utils/request.ts b/shared/utils/request.ts index 63add8e1..285d2d89 100644 --- a/shared/utils/request.ts +++ b/shared/utils/request.ts @@ -15,9 +15,10 @@ export function createAutoMergedRequest( windowMs = 200 ): (params: T) => Promise { let queue: QueueItem[] = []; - let timer: number; + let timer: number | null = null; async function submitQueue() { + timer = null; // 清空计时器以接受后续请求 const _queue = [...queue]; queue = []; // 清空队列 const ret = fn(_queue.map((q) => q.params));