获取用户列表
User API 允许获取你当前租户下的用户列表。
版本要求
此功能从 SDK v1.1.23 版本开始支持。
API 签名
client.api.user.getList(): Promise<User[]>
⚠️ 注意:
client.api.user.getList()不支持分页。默认情况下此方法会一次性返回当前租户下匹配条件的用户,但为防止一次性返回过多数据,SDK 会最多返回 1000 条记录(即"全量"但有上限)。
返回类型示例
(实际类型以 SDK 源码为准)
type User = {
code: string; // 用户唯一编码
userName: string; // 系统用户名
nickName?: string | null;
mobile: string;
email?: string | null;
avatar?: string | null;
};
快速开始
下面示例演示在项目中如何安全地调用 user.getList():
const users = await client.api.user.getList();
console.log(`返回 ${users.length} 个用户`);
// 注意:SDK 在内部已经对请求异常做了处理。在出现异常时,client.api.user.getList() 会返回空数组([])作为降级结果。
使用示例
只获取昵称和用户名(快速映射)
const users = await client.api.user.getList();
const mapped = users
.filter((u) => !!u.nickName)
.map((u) => ({ username: u.userName, nickName: u.nickName }));
console.log(mapped);
获取单个用户(先获取全量数据再过滤)
下面示例演示先通过 client.api.user.getList() 获取当前租户的用户全量(最多 1000 条),然后在客户端用 filter 取出单个用户(按 username 或其他字段匹配)。注意这是内存级别过滤,适合小量数据或下拉场景;若用户量大请改用服务端分页/过滤接口。
// 先获取列表(SDK 内部会做短期缓存与异常降级)
const users = await client.api.user.getList();
// 使用 filter 获取匹配的用户,然后取第一个(返回 null 表示未找到)
const matches = users.filter((u) => u.userName === "alice");
// 或者按用户编码筛选: users.filter(u => u.code === "user-001")
const user = matches.length ? matches[0] : null;
console.log(user);
注意事项与最佳实践
- 返回结果的范围:该方法默认会返回当前租户下所有的用户,但会对返回条数做上限限制(最多 1000 条)。因此建议仅在小规模列表或一次性加载场景(如下拉选择器)使用。当租户用户量较大或需完整遍历所有用户时,请改用
filter()、服务端分页接口或分批加载策略以避免性能和内存问题。 - 错误处理:SDK 在内部会捕获请求异常并在出错时返回空数组([])作为安全降级结果。调用方可以直接以返回的空数组作为降级策略;若需区分错误原因、上报或做特定重试逻辑。
- 缓存行为:短期缓存列表以提升性能。由于用户信息调整频率较低,SDK 在内部默认对列表数据进行短期缓存,缓存时长为 30 秒,以在兼顾时效性的同时提升性能。
常见问题
返回的数据是否包含敏感信息?
返回字段为常规展示字段(用户名、昵称、头像等),不会包含密码或安全凭证。
相关文档
最后更新:2025-12-01